0

struts2 アプリケーションに春のセキュリティを適用しています。インターセプター URL を使用してメイン URL へのアクセスを提供できますが、そのサブセットにはアクセスできません。

たとえば、書籍を表示するためだけに顧客ロールを持つユーザーにアクセス権を付与する必要があるため、次を使用します

    <http auto-config="true" access-denied-page="/not.jsp" use-expressions="true">
      ....
    <intercept-url pattern="/Books/view*" access="hasRole('ROLE_CUSTOMER')"/>

したがって、ユーザーは localhost:8888/Books/view.action にアクセスできるはずですが、アクセスできず、not.jsp ページ (アクセス拒否ページ) にリダイレクトされます。

次のすべてを試しましたが、どちらも機能しませんでした

    <intercept-url pattern="/Books/view.action" access="hasRole('ROLE_CUSTOMER')"/>
    <intercept-url pattern="/Books/view**" access="hasRole('ROLE_CUSTOMER')"/>
    <intercept-url pattern="/Books/view.action*" access="hasRole('ROLE_CUSTOMER')"/>

機能する唯一のものは、私が望まないすべてのアクション (編集、削除、および表示) へのアクセスを提供する次のものです。

     <intercept-url pattern="/Books/*" access="hasRole('ROLE_CUSTOMER')" /> 
4

2 に答える 2

1

以前のマッピングを確認してください。この行に到達する前に同じ URL に対して他のロールへのアクセスを提供すると、アドレスへの ROLE_CUSTOMER アクセスが拒否されることを忘れないでください。そのため、他の式を使用して、その URL へのアクセスが必要なすべてのロールにすべてアクセスできるようにします。一度。

于 2013-06-03T10:49:08.007 に答える
0

正規表現 " * " は任意のフレーズを意味します。だから私が考えることができるのは、URL パターン /Books/view がないか、その単語の後にそれ以上の文字がないということです。また、正規表現 "/Books/view* " と "/Books/view " も違いはありません。それらは同じです。

しかし、「/Books/*」この URL パターンは他とは異なります。/Books/ レベルのリソースを要求する任意の URL パターンに一致します。

私が言えることは、あなたが持っているURLパターンを再確認することです. それらを知らずにはいられません。

于 2013-06-03T04:24:31.503 に答える