1
我需要在用戶成功註冊後自動登錄。我需要重定向主頁。但在我的代碼中,它沒有被重定向到特定頁面。註冊後它仍然加載登錄頁。春季成功註冊後自動登錄mvc
我註冊控制器:
@Controller
public class LoginController
{
@Inject
RequestCache requestCache;
@Inject @Named("am")
protected AuthenticationManager authenticationManager;
@RequestMapping(value = "/userCreate", method = RequestMethod.POST)
public String getuseradd(Model model, HttpServletRequest request)
{
logger.debug("In getuseradd");
logger.debug("User add "+request.getParameter("firstName"));
String firstName = request.getParameter("firstName");
String lastName = request.getParameter("lastName");
String email = request.getParameter("email");
String password = request.getParameter("password");
try{
if(userService.searchRecords("Email", email).size()> 0)
{
return "redirect:/login";
}
else{
Users user = new Users();
user.setFirstName(firstName);
user.setLastName(lastName);
user.setUserStatus("Active");
user.setEmail(email);
user.setIsFacilitator(false);
user.setPassword(password);
user.setLanguageID(4L);
userService.create(user, creatorID);
Long userId = user.getUserID();
UserRoleXREF userRoleXREF = new UserRoleXREF();
userRoleXREF.setUserID(userId);
userRoleXREF.setUserRoleID(4L);
userRoleXREF.setComment(firstName);
userRoleXREFService.create(userRoleXREF, creatorID);
logger.debug("User role XREF created");
authenticateUserAndSetSession(user, request);
}
}
catch(AmmachiServerException ex)
{
logger.debug("AmmachiServerException: " + ex.getMessage());
}
return "redirect:/home";
}
}
private void authenticateUserAndSetSession(Users user,
HttpServletRequest request)
{
logger.debug("Authentication session"+user.getEmail()+""+user.getPassword());
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
user.getEmail(), user.getPassword());
// generate session if one doesn't exist
request.getSession();
token.setDetails(new WebAuthenticationDetails(request));
Authentication authenticatedUser = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
}
和我securitycontext.xml
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/login" access="permitAll"/>
<intercept-url pattern="/userCreate" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/loginfailed" access="permitAll" />
<intercept-url pattern="/**" access="isAuthenticated()" />
<form-login login-page="/login" always-use-default-target="false" default-target-url="/home" authentication-failure-url="/loginfailed" />
<logout logout-success-url="/logout" invalidate-session="true" delete-cookies="JSESSIONID" />
<session-management>
<concurrency-control max-sessions="10000" error-if-maximum-exceeded="false" />
</session-management>
</http>
<authentication-manager alias = "am">
<authentication-provider user-service-ref="loginValidator">
<password-encoder hash="md5">
<salt-source user-property="username"/>
</password-encoder>
</authentication-provider>
</authentication-manager>
能否請你幫助別人解決這個