0

親愛なる皆さん、新しいのはSpring Securityです。Spring Security でログインをチェックするようにサーバーを構成しました。今、私はそれをいくつかのサーバーにデプロイし、ドメイン名でアクセスしました。SpringSecurity を除くすべての URL にアクセスできます。URLもチェックしますか?? どうすれば変更できますか??

    <intercept-url pattern="/login.do" access="fullyAuthenticated" />
    <form-login login-page="/index.do" always-use-default-target="false" default-target-url="/login.do" />
    <anonymous />
    <logout invalidate-session="true" logout-success-url="/index.do" logout-url="/j_spring_security_logout" />
    <custom-filter before="FORM_LOGIN_FILTER" ref="springSocialSecurityAuthenticationFilter" />
    <remember-me services-ref="springSocialSecurityRememberMeServices" key="springSocialSecurity" />
</http>

ありがとう、OP

4

1 に答える 1

0

まず最初に 、Spring セキュリティ定数intercept-urlを記述または使用する必要があります。access="isFullyAuthenticated()"IS_AUTHENTICATED_FULLY

あなたの宣言は<intercept-url pattern="/login.do" access="fullyAuthenticated" /> 、 login.do ページにアクセスするにはログインする必要があることを意味します。

それはあなたが望むものではないと思います。

ここにどのように機能するかのいくつかの例がありますintercept-url:

    <intercept-url pattern="/index.jsp" access="permitAll" />   
    <intercept-url pattern="/secure/extreme/**" access="hasRole('supervisor')" />
    <intercept-url pattern="/secure/**" access="isAuthenticated()" />
    <intercept-url pattern="/listAccounts.html" access="isAuthenticated()" />
    <intercept-url pattern="/post.html" access="hasAnyRole('supervisor','regularuser')" />
    <intercept-url pattern="/**" access="denyAll" />

アプリケーションの URL に基づいて認証レベルを定義する必要があります。ログインページにアクセスするには、ログインページにpermitAllアクセスできるようにする必要があります...ユーザーがログインできるようにします。

ユーザーがログインせずにページにアクセスしようとするisAuthenticated()と、ログイン ページにリダイレクトされます。

パターンに複数のアクセスを入れることができます。たとえば、認証または匿名ロールを使用してページにアクセスできると判断できます。

<intercept-url pattern='/page2.jsp' access='ROLE_ANONYMOUS,ROLE_USER'/>
于 2013-03-29T10:34:57.460 に答える