1

这是我要替换的控制器:

@RequestMapping("/user")
public @ResponseBody UserRsp callUserService(Principal principal) {
    String authenticatedUsername = principal.getName();
    return userService.getUser(authenticatedUsername);
}

我想用映射到服务适配器的 int-http:inbound-gateway 替换它。我找不到任何关于此的文档,但我想做的是这样的:

<int-http:inbound-gateway
 request-channel="requests" 
reply-channel="replies" 
path="/user" 
view-name="/user" 
payload-expression="#payload.principal.name"
supported-methods="GET"/>

但是 payload.principal 是我编造的。关于正确方法的任何想法?

4

1 回答 1

1

假设您使用的是 Spring Security,这样的事情应该可以工作......

payload-expression="T(org.springframework.security.core.context.SecurityContextHolder).context.authentication.principal"
于 2012-07-12T22:46:03.543 回答