我正在使用 Spring Security 3.1 进行身份验证,并且登录工作正常。当用户注册时,我希望用户无需登录即可继续访问受限页面。
stackoverflow 上有几个类似的问题,答案略有不同,我已经尝试过这些,但似乎没有什么对我有用。这是我的安全配置:
<http pattern="/resources/**" security="none" />
<http pattern="/login" security="none" />
<http pattern="/user/forgotPassword" security="none" />
<http pattern="/user/createAccount" security="none" />
<http>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login" default-target-url="/defaultUrl"
always-use-default-target="true"
authentication-failure-url="/loginfailed" />
</http>
这是我的代码(在创建用户并将其添加到数据库之后):
UsernamePasswordAuthenticationToken upaToken = new UsernamePasswordAuthenticationToken(user.getName(), user.getPassword());
request.getSession();
upaToken.setDetails(new WebAuthenticationDetails(request));
Authentication auth = authenticationManager.authenticate(upaToken);
SecurityContextHolder.getContext().setAuthentication(upaToken);
return "redirect:<restricted-page>";
登录页面不会被重定向到受限页面。我错过了什么?
我还想避免调用对用户进行身份验证。这似乎没有必要,因为用户刚刚注册。但删除它似乎并没有改变任何东西。