有没有办法在使用x509时设置默认目标?例如,如果我使用的是常规格式auth,我会得到如下内容:
<security:form-login login-page="/login" always-use-default-target="true" authentication-failure-url="/login?error=1" default-target-url="/summarylogin"/>以下是我的配置设置:
<security:http auto-config="true" use-expressions="true" entry-point ref="forbiddenAuthEntryPoint">
<security:x509 subject-principal-regex="CN=(.*?)," user-service-ref="dashboardUserDetailsService" />
<security:intercept-url pattern="/static/**" filters="none"/>
<security:intercept-url pattern="/**" access="hasAnyRole('ADMIN', 'USER')" />
<security:session-management invalid-session-url="/login" />
<security:session-management>
<security:concurrency-control max-sessions="5" error-if-maximum-exceeded="true" />
</security:session-management>
</security:http>
<security:authentication-manager>
<security:authentication-provider user-service-ref="dashboardUserDetailsService">
</security:authentication-provider>
</security:authentication-manager>发布于 2012-03-15 05:55:04
有了form-auth,你就有了登录页面,用户可以在认证之前访问它。因此,您需要指定default-target -在成功验证后将用户发送到何处。
但是使用客户端X.509证书身份验证时,您没有登录页面。用户在他的浏览器中键入一些url,容器检查他的证书,如果成功,则允许用户访问他键入的url。
如果你想显示类似于"greetings“页面,它应该总是在登录时显示,你可以编写servlet过滤器,它将在会话中检查一些标志,如果没有设置标志,则将用户重定向到"greetings”页面。
https://stackoverflow.com/questions/5538606
复制相似问题