2016-10-03 104 views
0

我想创建一个RESTful API,我需要它是无状态的,因为我可能会启动N次应用程序。创建会话时无状态使用情况水平缩放

我还添加了OAuth2和JDBC实现,用户必须登录一次,所有的查询应该是无状态的。

在我的春季启动应用程序中添加以下内容会导致它尝试登录,现在尝试两次进行身份验证。

http 
     .sessionManagement() 
      .sessionCreationPolicy(SessionCreationPolicy.STATELESS); 

而在服务器端我有这些日志:

AuditEvent [timestamp=Tue Oct 04 05:04:52 ICT 2016, principal=dka, type=AUTHENTICATION_SUCCESS, data={details=org.sprin[email protected]b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null}] 
AuditEvent [timestamp=Tue Oct 04 05:04:52 ICT 2016, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={details=org.sprin[email protected]b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null, type=org.springframework.security.access.AccessDeniedException, message=Access is denied}] 
  • 这是否关心我的OAuth认证以及或仅WebSecurity一部分?
  • 是否有一种很好的方式来配置我的会话,以扩展它并保持服务无状态?

回答

0

它看起来像你的第二个请求不包含任何授权头或春季安全没有评估它。

根据OAuth Bearer Type Documentation您的客户端需要提交的报头:Authorization: Bearer YOUR_TOKEN而令牌是你的访问令牌响应的一个(见Example Access Token Response

如果这不能解决您的问题,请考虑添加一些日志您的配置代码为&。