首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在入站适配器中提取主用户

在入站适配器中提取主用户
EN

Stack Overflow用户
提问于 2017-10-05 21:19:51
回答 1查看 355关注 0票数 0

在我的Spring项目(使用Security使用基本授权)中,我试图访问主体对象以读取用户名。

这是入站网关的结构:

代码语言:javascript
复制
<int-http:inbound-gateway request-channel="gatewayRequests"
		reply-channel="gatewayResponses"
		supported-methods="POST"
		path="/api/v1/myservice"
		request-payload-type="java.lang.String" reply-timeout="100">

		<int-http:request-mapping consumes="application/xml" produces="application/xml"/>
		<int-http:header name="principal" expression="T(org.springframework.security.core.context.SecurityContextHolder).context.authentication.principal"/>
	</int-http:inbound-gateway>

我从答复中得到了上述表达式:Spring Integration and http inbound adapter, how do I extract a principal user?

尽管身份验证成功,但我没有看到主体--我的语法是否正确地期望将表达式的结果映射到消息头?

与到标头的映射不同,如果我要使用以下内容,如何访问代码层中的主体值(假设它被添加到有效负载中)?

代码语言:javascript
复制
<payload- 
 expression="T(org.springframework.security.core.context.SecurityContextHolder).
context.authentication.principal">

有人能帮帮我吗?

真诚的,Bharath

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-05 22:14:20

已经有一个标题,如:

代码语言:javascript
复制
.setHeader(org.springframework.integration.http.HttpHeaders.USER_PRINCIPAL,
                        servletRequest.getUserPrincipal())

在发送给gatewayRequests的消息中。

为什么这对你不管用?

OTOH这个表达式也必须有效。如果你没有那个,你就不能假设你的身份验证是正确的.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46594965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档