web.xmlのfilterでwelcome-pageをブロックします.
1606 ワード
spring securityを権限制御に使う過程で、以下の要求に遭遇しました.
ユーザーがログインしたら、ホームページurlを入力するときはログインページではなく、ログインしたホームページに直接ジャンプします.
「/」と「index.html」にはもともと権限が必要ではないので、appication Contact-security.xmlには以下のように配置されています.
この2行を除いて、ユーザー定義のProcessigFilterで登録すれば直接chain.filterと判断しましたが、できないことが分かりました.filters=「none」を使わないと、スプラインsecurityはデフォルトで/**にマッチングします.
仕方なく、自分でFilterを書いてweb.xmlにセットしてこの機能を実現します.もちろん、このように見えますが、もっといい解決方法はありません.ここで注意したいのですが、servlet 2.4 specという言い方で、mappingのurlに対しては
書き記す
•A string containing only the'/'character indicates the"default"servlet of
the appection.In this case the servlet path is the request URI minus the context
path and the path info is null.
でも実際に自分で書いたそのFilterがmappingにセットされていたら
どうしても「/」と「index」は捉えられません.解決方法はここに直接welcome-pageのアドレスを作ります.
これで捕獲できます.
specに対する理解が間違っているのか分かりませんか?なんだか「/」はデフォルトページを捕獲できると思います.
ユーザーがログインしたら、ホームページurlを入力するときはログインページではなく、ログインしたホームページに直接ジャンプします.
「/」と「index.html」にはもともと権限が必要ではないので、appication Contact-security.xmlには以下のように配置されています.
<s:intercept-url pattern="/" filters="none" />
<s:intercept-url pattern="/index.html" filters="none" />
この2行を除いて、ユーザー定義のProcessigFilterで登録すれば直接chain.filterと判断しましたが、できないことが分かりました.filters=「none」を使わないと、スプラインsecurityはデフォルトで/**にマッチングします.
仕方なく、自分でFilterを書いてweb.xmlにセットしてこの機能を実現します.もちろん、このように見えますが、もっといい解決方法はありません.ここで注意したいのですが、servlet 2.4 specという言い方で、mappingのurlに対しては
書き記す
•A string containing only the'/'character indicates the"default"servlet of
the appection.In this case the servlet path is the request URI minus the context
path and the path info is null.
でも実際に自分で書いたそのFilterがmappingにセットされていたら
<filter-name>directlyNavigateToMainPageWhenAuthenticationSuccessFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
どうしても「/」と「index」は捉えられません.解決方法はここに直接welcome-pageのアドレスを作ります.
<filter-mapping>
<filter-name>directlyNavigateToMainPageWhenAuthenticationSuccessFilter</filter-name>
<url-pattern>/index.html</url-pattern>
</filter-mapping>
これで捕獲できます.
specに対する理解が間違っているのか分かりませんか?なんだか「/」はデフォルトページを捕獲できると思います.