1

私はこの問題を抱えています:

Java Webアプリ(SpringおよびSpring-Security 3.1.4を使用)にはsso認証があります。これは、ユーザーが自分の PC にログインするとすぐに認証されることを意味します。

構成は次のとおりです。

<sec:http> 
    <sec:logout />
    <sec:form-login login-page="/login.jsp" default-target-url="/" /> 
    <sec:anonymous username="guest" granted-authority="ROLE_GUEST" />
    <sec:custom-filter ref="headersFilter" after="SECURITY_CONTEXT_FILTER" />
    <sec:custom-filter ref="jaasFilter" after="SERVLET_API_SUPPORT_FILTER" />
</sec:http> 

そしてこれは機能します(実際には、上記のようにユーザーがすでにログインしているため、login.jspは存在しません)。

ここでの問題は、「バックドア」が必要なことです。これは、私と私のチームがアプリをテストおよび管理するためのログイン ページが必要であることを意味します。

次のように動作するはずです。

- localhost/wepapp/myloginpage を呼び出すと、myloginpage.jsp が表示されます (これは現在機能しています)。

-「ログイン」ボタンをクリックし、2 番目の「要素」を入力します。ログインが成功した場合は、「/」にリダイレクトされます (これは機能せず、単に「ログイン」時にリダイレクトされます)。

・以下の構成で(localhost/wepapp)と呼ぶと認証なしでも「/」が見えるようです

この構成を試しましたが、うまくいきません。つまり、認証なしで「/」が表示され、ログインにリダイレクトされます (他の小さなバリエーションも試しましたが、多かれ少なかれ同じ結果になりました)。

<sec:http pattern="/myloginpage">
    <sec:logout />
    <sec:form-login login-page="/myloginpage" default-target-url="/" />
</sec:http> 

<sec:http pattern="/login">
    <sec:logout />
    <sec:form-login login-page="/login" default-target-url="/" />
    <sec:anonymous username="guest" granted-authority="ROLE_GUEST" />
    <sec:custom-filter ref="headersFilter" after="SECURITY_CONTEXT_FILTER" />
    <sec:custom-filter ref="jaasFilter" after="SERVLET_API_SUPPORT_FILTER" />
    </sec:http> 

私のmyloginpage.jsp:

 <form action="login" method="POST">
    <table>
    <tr>
        <td>
            Name
        </td>
        <td>
            <input type="text" name="name">
        </td>
    </tr>
  .........
  </form>

myloginpage のコントローラーもあります。

@Controller
public class Myloginpage {

publicMyloginpage() {

}

@RequestMapping("/myloginpage")
public String home() {
          return "myloginpage";
}

}

ありがとう、エイドリアン

4

1 に答える 1

0

<intercept-url>特定のパスへのアクセスを構成するためのタグが不足しているようです。

<sec:intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<sec:intercept-url pattern="/secure/**" access="ROLE_USER" />
于 2013-08-27T09:02:52.953 に答える