1

次のようなインターセプトURLの構成があります

<security:http use-expressions="true" disable-url-rewriting="true">

    <security:intercept-url pattern="/secure/admission/*" access="hasRole('ROLE_ADMISSIONER')" />              
    <security:intercept-url pattern="/secure/subdean/*" access="hasRole('ROLE_SUBDEAN')" />
    <security:intercept-url pattern="/secure/referent/*" access="hasRole('ROLE_REFERENT')" />                   
    <security:intercept-url pattern="/secure/index.xhtml" access="hasRole('ROLE_REFERENT, ROLE_SUBDEAN')" />    
    <security:intercept-url pattern="/secure/*" access="hasRole('ROLE_OMNI_ADMIN')" />
    <security:intercept-url pattern="/**" access="isAuthenticated()" />

しかし今、アプリケーションの URL にアクセスできるという問題があります。など...しかし、このユーザーに対して禁止する必要があります。

どこに問題があるか知っていますか?

4

1 に答える 1

5

PririzMavenアプリケーションのコンテキストパスであると仮定すると/secure/admin/updateRole.xhtml、パスと一致する/**ため、認証されたすべてのユーザーがアクセスできます。のルールはありません/secure/admin。単一の「*」はサブパスと一致しないことにも注意してください。たとえば、/secure/admin/**このパスの下のすべてを一致させるためにを使用する必要があります。

また、デバッグログを有効にして、ルールがどのように適用されているかを確認する必要があります。着信要求URLに対して呼び出されているマッチャーを確認し、何が比較され、何が照合されているかを確認する必要があります。

最後に、<security:debug />アプリケーションコンテキストファイルの先頭に追加する価値があります。これにより、要求処理に関するその他の有用なデバッグ情報が、より人間が読める形式で追加されます。

于 2012-05-15T20:20:32.507 に答える