私はセキュリティ認証の実装を持つJ2EEアプリケーションを持っています。 この依存モジュールでは、アクセストークンがヌルかどうかがチェックされています。存在する場合、NullPointerExceptionがスローされます。 500エラーページの代わりにjspカスタムページにリダイレクトするために、私のアプリケーションでこの例外を捕捉する必要があります。Spring Security:別のモジュールのセキュリティコールの前にフィルタリングコントロールを追加する方法
ポイントは私のアプリケーションクラスの1つを決して通過しないため、他のものを直接呼び出すアプリケーションではないため例外をキャッチできません。チェーンはSpringセキュリティメカニズムによって処理されるためです。私はLogoutFilterに、SecurityContextPersistenceFilterに、その後、FilterChainProxyに、私はDelegatingFilterProxyに合格することを確認し、この時点で制御は、例外がスローされた依存関係のアプリケーション、上渡しスタックトレースから 。
セキュリティの依存関係を呼び出す前にリダイレクトを制御するために、トークン文字列の予防制御を追加する方法はありますか?
これは最初のステップとして、依存フィルタ(preAuthenticationFilter)を呼び出すためにスプリングを可能にするSpring構成である:
<http auto-config="true" access-denied-page="/500" use-expressions="true">
<custom-filter position="PRE_AUTH_FILTER" ref="preAuthenticationFilter" />
<intercept-url pattern="/portal/**" access="isAuthenticated()" />
<intercept-url pattern="/**" access="permitAll" />
<logout logout-url="/logout" delete-cookies="true"
invalidate-session="true" logout-success-url="/logoutsuccess" />
<session-management session-fixation-protection="newSession" />
</http>
編集:ここで定義するBean構成に変更されFilterWrapper:
<bean id="preAuthenticationFilter" class="com.example.FilterWrapper">
<constructor-arg>
<bean class="com.example.MyPreAuthenticationFilter" >
<property name="authenticationManager" ref="authenticationManager" />
<property name="continueFilterChainOnUnsuccessfulAuthentication" value="false" />
<property name="verifyTokenChanged" value="true" />
</bean>
</constructor-arg>
</beans:bean>
おかげで、私は私が指定できる/知って見ることができませんFilterWrapperが元のフィルタのラッパーであること – mifert
設定ファイルを更新する方法の詳細については、更新された回答を参照してください。 – marthursson
FilterWrapperでプロパティを設定しようとしています。プロパティは、 "MyPreAuthenticationBean" – marthursson