1

Spring 3.1.0.RELEASE、JSF 2.x、JPA2とHibernateプロバイダーを使用してWebアプリケーションを実行しています。わかりやすいURLにはPrettyFaces3.3.2を使用しています。アプリケーションはTomcat6.35で実行されます。

Spring security 3.1.0.RELEASEを使用すると、Webアプリのページが制限されます。

security-app-context.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>

pretty-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>

ほとんどの場合、ユーザーは次のようにWebアプリにアクセスします http://mysite/home/en/siteId。URLの最後の部分は、lang/サイトIDです。

ただし、接続されていない場合は、SpringSecurityがログインページでリダイレクトします。

尋ねられたURLに応じてログインページに特別な要素を表示したい:最後のパラメータen/siteId(langとサイトID)

たとえば、サイトIDに応じて、ログインページにロゴを表示したいと思います。

どうすればそれができますか?

4

0 に答える 0