我需要手动将用户登录到由spring security保护的应用程序中。 我的方案是
步骤1到4正在运行。
在我的不安全控制器中(我获取加密数据) 我有以下几行,但这再次调用我的身份验证管理器,我不想在这种情况下再次进行身份验证。我只想创建会话并设置用户主体。
String username = application1.webservice(encoded data);
Authentication authentication = new UsernamePasswordAuthenticationToken(username,password);
SecurityContextHolder.getContext().setAuthentication(authentication);
return "redirect:/app";
注意:我确实有基于表单的LDAP身份验证(如果用户直接登录我的应用程序,将使用此功能) 我正在使用spring security 3.2 / Java Config
答案 0 :(得分:0)
SecurityContextPersistenceFilter
负责在网络请求开始时在SecurityContext
中设置SecurityContextHolder
。请求处理期间对SecurityContext
的任何更改都将在Web请求结束时复制到HttpSession
。
因此,当您更新Authentication
中的SecurityContext
时,此过滤器将在身份验证请求结束时更新HttpSession
。
您是否可以确认在身份验证响应中发回的JSESSIONID
是否与所有后续请求相同?