私は最近、SAML について読み始め、Spring の SAML サンプル プロジェクトに似たものを既存の Java アプリケーションに実装しようとしています (だから、何かばかげたことを尋ねたら、私を惜しまないでください!)。私の既存のアプリケーションには、ユーザー資格情報を要求し、それに応じて検証を行う Login.jsp があります。アプリケーションに SSO のアイデアを実装したいと考えています。まず、Spring Saml-sample プロジェクトについてよく理解できました。その SecurityContext.xml で、samlIDPDiscovery Bean は次のように構成されます。
<!-- IDP Discovery Service -->
<bean id="samlIDPDiscovery" class="org.springframework.security.saml.SAMLDiscovery">
<property name="idpSelectionPath" value="/WEB-INF/security/idpSelection.jsp"/>
</bean>
idpSelection.jsp には、次の html パーツ コードがあります。
<h1>IDP selection</h1>
<%
WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletConfig().getServletContext());
MetadataManager mm = context.getBean("metadata", MetadataManager.class);
Set<String> idps = mm.getIDPEntityNames();
pageContext.setAttribute("idp", idps);
%>
<p>
<form action="<c:url value="${requestScope.idpDiscoReturnURL}"/>" method="GET">
<table>
<tr>
<td><b>Select IDP: </b></td>
<td>
<c:forEach var="idpItem" items="${idp}">
<input type="radio" name="${requestScope.idpDiscoReturnParam}" id="idp_<c:out value="${idpItem}"/>" value="<c:out value="${idpItem}"/>"/>
<label for="idp_<c:out value="${idpItem}"/>"><c:out value="${idpItem}"/></label>
<br/>
</c:forEach>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Login"/></td>
</tr>
</table>
</form>
</p>
<p>
<a href="<c:url value="/saml/web/metadata"/>">Metadata information</a>
</p>
<%
response.sendRedirect("http://localhost:6443/spring-saml/saml/login/alias/defaultAlias? idp=http%3A%2F%2Fidp.ssocircle.com");
%>
したがって、適切な IdP を選択し、ログインをクリックしたときに選択した Idp のランディング ページにリダイレクトするために、Login.jsp と securityContext.xml に適切な変更を加えることで、上記と同様の実装を行う場合、どのように進めればよいでしょうか? ずっと前からやってみたのですが、できませんでした。どんな助けでも大歓迎です。