0

2 つの問題:

問題 1:

私のapplicaitonContext-security.xmlファイルには次のものがあります。

<security:http auto-config="true" access-denied-page="/denied.jsf" servlet-api-provision="false">
    <security:intercept-url pattern="/denied.jsf" filters="none" />     
    <security:intercept-url pattern="/login.jsf" filters="none" />
    <security:intercept-url pattern="/redirect.html" filters="none" />
    <security:intercept-url pattern="/images/**" filters="none" />      
    <security:intercept-url pattern="/a4j_resource/**" filters="none" />        
    <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY" />
    <security:form-login login-page="/login.jsf" authentication-failure-url="/login.jsf" default-target-url="/redirect.html" />     
    <security:logout />
</security:http>

しかし、私が行くと、ページhttp://localhost:8080/summary/projects.jsfにリダイレクトされません。login.jsf何か案は。

問題 2:私が持って いるprojects.xhtmlページで

<rich:comboBox  value="#{projectUiService.coordinatorSelected}"  directInputSuggestions="true"  defaultLabel="Enter Co-ordinator" >

私が持っているgetCoordinatorSelected方法では@RolesAllowed("READ_PROJECT")、私が得るのはエラーだけです:

AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext

ユーザーがログインしていないときにSpringをログオンページにリダイレクトするにはdenied.jsfどうすればよいですか?また、ユーザーが正しい権限を持っていない場合にSpringをページにリダイレクトするにはどうすればよいですか?

私は過去 6 時間あたりを見回し、大量のログを試みましたが、解決策が見つかりません。任意のポインタをいただければ幸いです。

ありがとう

4

2 に答える 2

1

すべてを交換する必要があります

<security:intercept-url pattern="/denied.jsf" filters="none" />

別々の構造

<security:http pattern="/denied.jsf" security="none" />

タグ。filters="none" を指定した 1 つのインターセプト URL は、すべての http 構成要素を無効にします

2 番目のオプション:

<security:intercept-url pattern="/denied.jsf" access="IS_AUTHENTICATED_ANONYMOUSLY" />
于 2013-01-10T14:16:28.723 に答える
0

解決しました! @[Maksym Demidas] は正しかった。Spring 2.5 と 3 の組み合わせを使用するアプリケーションを継承しました。Spring 3 へのすべての依存関係を整理し、セキュリティ xml ファイルを次のように更新しました。

....
<security:http pattern="/denied.jsf" security="none"/>
<security:http pattern="/login.jsf" security="none"/>
....
<security:http auto-config="true" access-denied-page="/denied.jsf" servlet-api-provision="false">
    <security:intercept-url pattern="/login.jsf" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY" />
    <security:form-login login-page="/login.jsf" authentication-failure-url="/login.jsf" default-target-url="/redirect.html" />
    <security:logout />
</security:http>

今はすべて正常に動作します。

于 2013-01-14T12:14:57.490 に答える