Jboss Wildfly 10でstruts2を使用した単純なWebアプリケーションを開発しています。SAML2でPicketlinkを使用するには、外部IDサーバー(WSO2IS )。
WSO2ISを使用してカスタムサービスプロバイダを作成し、Webアプリケーションでセキュリティを定義し、WSO2ISで設定されたServiceProviderを使用するようJBossでピケットリンクを設定しました。
セキュリティフィルターは、localhost:8087/MyApp SSOを開き、WSO2ISログインページでリダイレクトしようとするとログインした後、samlssoプロバイダーのhttps:// localhost:9446/samlssoによって常にパススルーされます。ターゲットアクション(「POST」ボタンも含む)をリダイレクトするページを表示します。
問題は、ボタンを押すか、またはhome.actionへのreturnというアクションを自動的にリダイレクトすることです。アプリケーションのページ内をナビゲートできません。トラップWebボタンは、適切なアクションを呼び出し、トークン(たとえば、https:// localhost:9446/samlsso?SAMLRequest =トークン)を持つsamlssoを介してリダイレクトされますhome.actionに。Picketlink Wildfly 10 for Struts2 WebAppが常にhome.actionにリダイレクト
すべてのアクションの戻り値の型は "tyles"で、2つのjson結果はajax呼び出しです。
ここで私が設定しているかの詳細:以下のように構成さ
JBossの-web.xmlの
<jboss-web>
<context-root>MYAPP</context-root>
<security-domain>MYAPP_SD</security-domain>
</jboss-web>
のWeb.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>NoLock</web-resource-name>
<url-pattern>/css/*</url-pattern>
<url-pattern>/images/*</url-pattern>
<url-pattern>/img/*</url-pattern>
<url-pattern>/js/*</url-pattern>
<url-pattern>/jsp/*</url-pattern>
<url-pattern>/struts/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>MYAPPContext</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>Application/MyAppRole</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>Application/MyAppRole</role-name>
</security-role>
役割アプリケーション/ MyAppRoleは、新しいサービスプロバイダーMyAppRoleを構成するIdentity Server wso2に定義されています。私はそれにいくつかのユーザーを追加しました。 JBossでは
、設定 - > subsystem->セキュリティで私はセキュリティドメインは、認証コード "
org.picketlink.identity.federation.bindings.jboss.auth.SAML2LoginModule"
で、をMyApp_SD作成Jbossでも、configuration-> picketlinkでは、セキュリティドメイン "MyApp_SD"(信頼できるドメインlocalhost:8087)上に新しい "MyApp_Federation"を作成し、Federationに私はMyApp.warという新しいサービスプロバイダを作成しました、さらにMyApp_SDをセキュリティドメイン、a
- SAML2LogOutHandler:クラス名org.picketlink.identity.federation.web.handlers.saml2.SAML2LogOutHandler
- RolesGenerationHandler:クラス名org.picketlink.identity.federation.web ND SAMLHandlerで次のように構成されました。 handlers.saml2.RolesGenerationHandler
- SAML2AuthenticationHandler:クラス名
org.picketlink.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler、次のハンドラのパラメータを持つ:- ASSERTION _SESSION_ATTRIBUTE_NAME:org.picketlink.sp.assertion
- DISABLE_ROLE_PICKING:偽
- CLOCK_SKEW_MILIS:120000
- ROLE_KEYます。http:// WSO2。ORG /請求/役割
- SAML2AttributeHandler:クラス名org.picketlink.identity.federation.web.handlers.saml2.SAML2AttributeHandler、次のハンドラ偶然に持つ:
- ATTRIBUTE_CHOOSE_FRIENDLY_NAME:偽
私の設定に何か問題がありますか? web.xml制約、struts2アクション構成、またはpicketlink構成の問題ですか?
ピケットリンクをオフにすると、アクションを使用できますか? –
はい、ピケットリンクなしですべて正常に動作します。私が以下に答えたので、Firefoxのシークレットモードが問題です – blkid