複数のログインページのソリューションを実装しようとしています。私は現在、一意の LoginController を持っており、誰かが /app_name/login.htm を要求したときにログイン jsp を取得するだけです。このままにしておきたいのですが、さらに 2 つの場所 (/app_name/customers/login.htm と /app_name/employees/login.htm) を追加し、それぞれに個別のコントローラー CustomerLoginController と EmployeeLoginController を追加します。
したがって、私の考えでは、従業員は自分の URL を介してアクセスし、顧客は自分の URL を使用してアクセスしますが、誰かが古い login.htm にアクセスしようとすると、コントローラーは保存された Cookie と顧客をデフォルトとして使用して、それぞれのログインにリダイレクトします。
私には良いように思えますが、/app_name/customers/login.htm または /app_name/employees/login.htm にアクセスしようとすると、認証されていないときに login.htm にリダイレクトされます。
なぜそれらが解決されないのか、私には本当にわかりません。意見、提案、ガイド、チュートリアル、サンプル コード、またはリンクは役に立ちます。
私が取り組んでいるプロジェクトには、この構成があります
Web.xml
<!-- Spring Security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
サーブレット-config.xml
<!-- Controllers Mapping -->
<context:component-scan base-package="com.company.project.controllers">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
security-context.xml
<sec:http auto-config="false" entry-point-ref="authenticationProcessingFilterEntryPoint" access-denied-page="/warning/accessDenied.htm" >
<sec:intercept-url pattern="/employees/login.htm" filters="none" />
<sec:intercept-url pattern="/customers/login.htm" filters="none" />
<sec:intercept-url pattern="/login**" filters="none" />
</sec:http>
<bean id="authenticationProcessingFilterEntryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/login.htm" />
<property name="forceHttps" value="false" />
</bean>
<bean id="authenticationProcessingFilter" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationFailureUrl" value="/login.htm?login_error=1"/>
<property name="defaultTargetUrl" value="/home.htm"/>
<property name="alwaysUseDefaultTargetUrl" value="true"/>
<property name="filterProcessesUrl" value="/j_spring_security_check"/>
</bean>
PD: Spring 2.5.4 と Spring Security 2.0.4 を使用 -_- 知っていますが、かなりの規模のプロジェクトであり、しばらくの間運用されています