Java 如何使用Spring和Ldap将登录用户重定向到主页
我使用Spring和Ldap进行用户身份验证,现在我想在用户已经登录时将用户重定向到主页,我尝试了一些通过google阅读的解决方案,但没有成功。这是我的配置代码 Spring-Security.xmlJava 如何使用Spring和Ldap将登录用户重定向到主页,java,spring,spring-security,ldap,Java,Spring,Spring Security,Ldap,我使用Spring和Ldap进行用户身份验证,现在我想在用户已经登录时将用户重定向到主页,我尝试了一些通过google阅读的解决方案,但没有成功。这是我的配置代码 Spring-Security.xml <security:http auto-config="true" use-expressions="true" access-denied-page="/denied" access-decision-manager-ref="accessDecisionManag
<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>
auth.getName()始终为我提供匿名用户,即使我已登录……您应该将目标重定向写入主页, 成功登录到spring-security.xml中的默认目标url,而不是默认目标url=“/checking”后 我不确定您在/login/login Controller中想要实现什么? 如果您只想重定向用户,在成功登录到/member/user后,您应该写:
<security:form-login login-page="/login"
always-use-default-target='true'
default-target-url="/member/user"
authentication-failure-url="/login/login?error=true"
/>
如果您的身份验证提供程序正常且正确,Spring security将在成功登录后自动将您重定向到/member/user。我的问题不是在成功登录后重定向用户,但假设我成功登录,而不是单击登录链接,则不应要求我再次登录,而应重定向到/member/loginI。我建议在成功登录后隐藏登录链接。类似这样:如果您检查了SecurityContextHolder,并且它包含一个
匿名身份验证令牌
,那么从Spring Security的角度来看,您没有经过身份验证(前提是请求通过安全过滤器链)。检查您的浏览器是否发送了一个会话cookie,该cookie在您通过身份验证后与会话Id匹配。
<security:form-login login-page="/login"
always-use-default-target='true'
default-target-url="/member/user"
authentication-failure-url="/login/login?error=true"
/>
@RequestMapping(value="/login", method = RequestMethod.GET)
public String login(ModelMap model) {
return "login";
}