我们的应用程序配置了blazeds和spring-security,并使用remoting-object标签来调用方法。我感觉配置不合适。有什么参考我可以理解所有这三种技术的整合。
我正面临的问题是登录sesionid之后的一次,如浏览器工具(Chrome的检查元素)dosnt更改所示,其中spring-security表示会话ID在用户通过身份验证后更改。
<flex:message-broker>
<flex:remoting-service default-channels="my-cfamf-secure" />
<flex:secured>
<flex:secured-channel channel="my-cfamf-secure"
access="ROLE_USER,ROLE_ADMIN,ROLE_SALES" />
<flex:secured-endpoint-path pattern="**/messagebroker/**" access="ROLE_USER" />
</flex:secured>
</flex:message-broker>`
<security:http auto-config="true">
<security:intercept-url pattern="/index.jsp"
filters="none" access="ROLE_USER" />
<security:intercept-url pattern="/**/*.swf"
filters="none" />
<security:intercept-url pattern="/**/*.jsp"
filters="none" access="ROLE_USER" />
<security:intercept-url pattern="/**" filters="none" />
<security:logout invalidate-session="true"
logout-success-url="/index.jsp" />
<security:session-management session-fixation-protection="newSession">
</security:session-management>
</security:http>
<security:authentication-manager alias="_authenticationManager">
<security:authentication-provider
user-service-ref="userDetailsService">
<security:password-encoder hash="md5" />
</security:authentication-provider>
</security:authentication-manager>
<channel-definition id="my-cfamf-secure"
class="mx.messaging.channels.SecureAMFChannel">
<endpoint
url="https://{server.name}:{server.port}/{context.root}/messagebroker/amf/cfamfsecure"
class="flex.messaging.endpoints.SecureAMFEndpoint" />
<properties>
<polling-enabled>false</polling-enabled>
<serialization>
<instantiate-types>true</instantiate-types>
</serialization>
<add-no-cache-headers>false</add-no-cache-headers>
<invalidate-session-on-disconnect>true</invalidate-session-on-disconnect>
</properties>
</channel-definition>
这是我的配置
答案 0 :(得分:0)
您似乎使用的是旧版本的Spring Security(版本2.x),请考虑升级到3.x.使用这种基本配置应该非常简单,如果继续使用旧配置,将不容易获得支持。
一个提示:<security:http>
内的配置会将filters="none"
分配给所有可能的网址,所以我猜它实际上不会做任何对于任何请求,这就是忽略会话管理设置的原因。