www.someurl.com - public access not intercepted by Spring Security 3.
www.someurl.com/admin - intercepted by Spring Security 3. Works fine.
我登录www.someurl.com/admin网页。然后我在同一窗口选项卡中将网址更改为www.someurl.com。我在同一个http会话中工作,所以我希望能够检索用户登录信息。如何使用Spring Security 3检索UserDetails?
公共URL请求由专用控制器处理。在这个控制器中,我有一个有线用户服务。此服务的实施者试图检索凭证,但不能 - 认证对象为空。
Authentication a=SecurityContextHolder.getContext().getAuthentication();
userDetails=(UserDetails) a.getPrincipal();
=== UPDATE =========================
当我检查公共HttpSession中URL请求控制器,I看到该属性:
{SPRING_SECURITY_CONTEX[email protected]ed20eaf7:认证:org.springframew[email protected]ed20eaf7:主要:org.springframework。 [email protected]:用户名:admin;密码保护];启用:true; AccountNonExpired:true; credentialsNonExpired:true; AccountNonLocked:true;授权机构:管理员,作者,编辑,读者;证书:[PROTECTED];已验证:true;详细信息:org.sprin[email protected]380f4:RemoteIpAddress:127.0.0.1; SessionId:43A582157C5813018632ACDD7499CF7D;授予权限:管理员,作者,编辑,读者}
得到当前用户登录详细信息代码看起来不错 - 你确定你有弹簧安全配置来拦截www.someurl.com网址吗? –
公共网址未被拦截。这是问题吗? – jacekn
是的。我将把一个答案放在一起 –