私はこの問題を抱えています:
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";
}
}
ありがとう、エイドリアン