3

私は最近、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>&nbsp;</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 に適切な変更を加えることで、上記と同様の実装を行う場合、どのように進めればよいでしょうか? ずっと前からやってみたのですが、できませんでした。どんな助けでも大歓迎です。

4

1 に答える 1