【发布时间】:2013-12-01 23:11:11
【问题描述】:
成功登录后,我想使用新的 url 继续进一步的请求处理。但是 url 正在调用 spring mvc 中的公开服务,其中安全配置不检查即将到来的 url 的会话身份验证。请看下面的代码。
<http auto-config="true" use-expressions="true">
<!-- <intercept-url pattern="/**" access="isAuthenticated()" /> -->
<intercept-url pattern="/home*" access="isAuthenticated()" />
<intercept-url pattern="/admin*" access="isAuthenticated()" />
<form-login login-page="/" default-target-url="/home"
authentication-failure-url="/accessdenied" always-use-default-target="false"/>
<logout logout-success-url="/" />
<anonymous username="guest" granted-authority="ROLE_GUEST" />
<session-management invalid-session-url="/" session-authentication-error-url="/login.jsp?error=alreadyLogin">
<concurrency-control max-sessions="1" expired-url="/login.jsp?error=sessionExpiredDuplicateLogin" error-if-maximum-exceeded="false"/>
</session-management>
<remember-me />
</http>
当 jsp 页面提交登录验证 J_security_check 调用的目标 url 随后调用拦截器模式 /home* 并验证登录凭据。
如果我在登录前调用暴露的服务 "/address/userid/" 它直接调用服务方法如何使其会话绑定,如果会话存在则获取数据,否则不。
spring 安全会话与 http 会话有何不同,如何在 spring mvc 中像 http 会话一样维护 spring 安全会话。
如果我添加 <intercept-url pattern="/**" access="isAuthenticated()" /> 它不起作用,它也不会显示登录 jsp。请澄清我做错的地方。
如何区分身份验证管理器中的 userid/pwd 如下所示,作为单一的?接受第一个参数。
<authentication-manager>
<authentication-provider>
<!-- <user-service> <user name="admin" password="secret" authorities="ROLE_ADMIN,ROLE_USER"/>
</user-service> -->
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="SELECT USER_NAME,USER_PWD, 'true' as enabled from LOGIN_USER where USER_NAME=?"
authorities-by-username-query="select LOGIN_USER.USER_NAME , LOGIN_USER.ROLE_ID as authorities from LOGIN_USER
where LOGIN_USER.USER_NAME =?" />
</authentication-provider>
</authentication-manager>
我遇到了几个网站,它只描述了登录 spring 安全会话管理。我不清楚。提前致谢。
【问题讨论】:
标签: java spring session spring-mvc