0

WebLogic 10.3(11G)でFlexの実装(現在SDK 3.5を使用)に取り組んでいます。元々はGlassfish v2.1.1を使用していましたが、問題はありませんでした(Active Directoryグループのルックアップのバグがありましたが、進行を妨げることはありませんでした)。 WebLogicに移行すると、j_security_checkを使用してログインした後にflexsessionが無効になるという問題があります。

[BlazeDS]Unexpected error encountered in Message Broker servlet
flex.messaging.LocalizedException: The FlexSession is invalid.
        at flex.messaging.FlexSession.checkValid(FlexSession.java:943)
        at flex.messaging.FlexSession.getUserPrincipal(FlexSession.java:254)
        at flex.messaging.HttpFlexSession.getUserPrincipal(HttpFlexSession.java:286)
        at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:296)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3594)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

services-config.xmlのほぼすべてのオプションを試しました。

    <security>
        <login-command class="flex.messaging.security.WeblogicLoginCommand" server="Weblogic"/>
        <!-- Uncomment the correct app server
        <login-command class="flex.messaging.security.TomcatLoginCommand" server="JBoss">
        <login-command class="flex.messaging.security.JRunLoginCommand" server="JRun"/>        
        <login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
        <login-command class="flex.messaging.security.WebSphereLoginCommand" server="WebSphere"/>
        -->
    </security>

運が悪かったので、このセクションを完全に削除しました。ログインは、BlazeDS以外の観点から正しく機能します。ユーザーを正しく認証します。認証がない場合、BlazeDSは正常に機能します(リモート呼び出しでエラーは発生しません)。一緒にすると、大きな失敗のボールになります(毎回無効なフレックスセッション)。

誰かがこれを機能させましたか?任意のヒント?

4

1 に答える 1

0

services-config.xmlを次のように 変更します
<security auto-config="true" session-fixation-protection="none">
   <login-command class="flex.messaging.security.TomcatLoginCommand" ....

于 2010-07-03T19:46:19.727 に答える