我正在使用 Spring 3.1.0.RELEASE、JSF 2.x、JPA 2 和 Hibernate Provider 做一个 Web 应用程序。我使用 PrettyFaces 3.3.2 作为友好的 URL。该应用程序在 Tomcat 6.35 上运行。
我的 webapp 上的页面受到 Spring security 3.1.0.RELEASE 的限制。
安全应用上下文.xml:
<intercept-url pattern="/home/**" access="hasRole('ROLE_USER')" />
<!-- login -->
<form-login login-processing-url="/login_check" login-page="/login"
default-target-url="/home" authentication-failure-url="/login?login_error=1"
authentication-success-handler-ref="frontConnectionHistoryHandler" />
<access-denied-handler error-page="/accessdenied" />
<!-- logout -->
<logout invalidate-session="true" logout-success-url="/logout_success"
logout-url="/logout" delete-cookies="JSESSIONID" />
<session-management>
<concurrency-control max-sessions="1" />
</session-management>
漂亮的config.xml:
<!-- Login -->
<url-mapping id="login">
<pattern value="/login" />
<view-id value="/login.jsf" />
</url-mapping>
<!-- Access denied -->
<url-mapping id="accessdenied">
<pattern value="/accessdenied" />
<view-id value="/accessdenied.jsf" />
</url-mapping>
<!-- Logout -->
<url-mapping id="logout">
<pattern value="/logout" />
<view-id value="/j_spring_security_logout" />
</url-mapping>
<!-- Logout successed -->
<url-mapping id="logout_success">
<pattern value="/logout_success" />
<view-id value="/logout_success.jsf" />
</url-mapping>
大多数情况下,用户访问 webapp 是这样的:
http://mysite/home/en/siteId
. URL 的最后部分是 lang / 站点 ID。
但是如果它们没有连接,spring security 会将它们重定向到登录页面。
我想根据询问的 url 在登录页面上显示特殊元素:最后一个参数en/siteId
(语言和站点 ID)
例如,我想根据站点 ID 在登录页面中显示徽标。
我怎么能这样做?