我正在使用Spring和Ldap進行用戶認證,現在我想在用戶已登錄時將用戶重定向到主頁,我嘗試了幾個解決方案,我通過google但沒有運氣。下面是我的配置代碼...如何使用Spring和Ldap將登錄用戶重定向到主頁
彈簧security.xml文件
<security:http auto-config="true" use-expressions="true"
access-denied-page="/denied" access-decision-manager-ref="accessDecisionManager"
disable-url-rewriting="true">
<security:remember-me key="_spring_security_remember_me"
token-validity-seconds="864000" token-repository-ref="tokenRepository" />
<security:intercept-url pattern="/login/login"
access="permitAll" />
<security:intercept-url pattern="/resources/**"
access="permitAll" />
<security:intercept-url pattern="/member/*"
access="permitAll" />
<security:intercept-url pattern="user/admin/admin"
access="hasRole('ROLE_ADMIN')" />
<security:intercept-url pattern="/user/user"
access="hasRole('ROLE_USERS')" />
<security:form-login login-page="/login/login"
authentication-failure-url="/login/login?error=true"
default-target-url="/checking" />
<security:logout invalidate-session="true"
logout-success-url="/login/login" logout-url="/login/logout" />
<security:custom-filter ref="captchaCaptureFilter"
before="FORM_LOGIN_FILTER" />
<!-- <security:custom-filter ref="captchaVerifierFilter" after="FORM_LOGIN_FILTER"
/> -->
<!-- <security:session-management
invalid-session-url="/logout.html">
<security:concurrency-control
max-sessions="1" error-if-maximum-exceeded="true" />
</security:session-management>
<security:session-management
session-authentication-strategy-ref="sas" /> -->
</security:http>
我的登錄控制器
public class LoginController {
@Autowired
private User user;
@Autowired
SecurityContextAccessor securityContextAccessor;
@RequestMapping(value = "login/login", method = RequestMethod.GET)
public String getLogindata(
@RequestParam(value = "error", required = false) String error,
Model model) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
model.addAttribute("error", error);
if (securityContextAccessor.isCurrentAuthenticationAnonymous() && auth.getPrincipal() == null) {
return "login/login";
} else {
return "redirect:/member/user";
}
}
}
auth.getName()總是給我,即使我是匿名用戶已經登錄....
如果您已經檢查了SecurityContextHolder並且它包含一個'AnonymousAuthenticationToken',那麼從Spring Security的角度來看,您沒有進行身份驗證(前提是請求已通過安全篩選器鏈)。檢查一下您的瀏覽器是否發送了一個會話cookie,該cookie與會話Id相匹配。 –