2017-06-27 7 views
0

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 =トークン)を持つs​​amlssoを介してリダイレクトされます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、次のハンドラのパラメータを持つ:
    1. ASSERTION _SESSION_ATTRIBUTE_NAME:org.picketlink.sp.assertion
    2. DISABLE_ROLE_PICKING:偽
    3. CLOCK_SKEW_MILIS:120000
    4. ROLE_KEYます。http:// WSO2。ORG /請求/役割
  • SAML2AttributeHandler:クラス名org.picketlink.identity.federation.web.handlers.saml2.SAML2AttributeHandler、次のハンドラ偶然に持つ:
    1. ATTRIBUTE_CHOOSE_FRIENDLY_NAME:偽

私の設定に何か問題がありますか? web.xml制約、struts2アクション構成、またはpicketlink構成の問題ですか?

+0

ピケットリンクをオフにすると、アクションを使用できますか? –

+0

はい、ピケットリンクなしですべて正常に動作します。私が以下に答えたので、Firefoxのシークレットモードが問題です – blkid

答えて

0

私はこの問題を発見し、Firefoxのシークレットモードを使用しています。通常モードを使用すると、アクションリンクは自動的にjsessionidで修正され、すべて正常に動作します。しかし、私は、jsessionidを追加するために、URLとajaxアクションjsを生成するすべてのjavascriptメソッドを編集する必要があります。

関連する問題