我们已设置Fusion Middleware来处理我们的证书。它在端口443上配置,并在处理认证过程后将其请求转发到在端口8001上设置的weblogic 11g实例。该实例处理身份验证并通过中间件返回响应。我们正在使用Spring 2.5.6& Spring Security 2.0.4。这是一个基于flex的Web应用程序。使用firebug / firefox,我能够验证服务器是否正确处理了身份验证请求,并尝试返回我的loginSuccess.htm(在我的spring安全配置文件中通过org.springframework.security.ui.webapp.AuthenticationProcessingFilter
配置)但我可以看到它是302前进,来自firebug说Aborted的状态是错误的。
另外需要注意的是,身份验证和应用程序在独立的weblogic实例上运行良好;当我们在Web应用程序和客户端之间引入融合中间件时,我们开始遇到身份验证问题。
这是我的AuthenticationProcessingFilter配置条目的片段:
<bean id="authenticationProcessingFilter" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="authenticationFailureUrl" value="/loginFailure.htm"/>
<property name="defaultTargetUrl" value="/loginSuccess.htm"/>
<property name="filterProcessesUrl" value="/login.htm"/>
<property name="rememberMeServices" ref="rememberMeServices"/>
<property name="alwaysUseDefaultTargetUrl" value="true" />
<property name="usernameParameter" value="username"/>
<property name="passwordParameter" value="password"/>
</bean>
任何见解都会有用。我们引入了融合中间件,因为它是Oracle推荐的生产方法;我们事先遇到了证书问题。
答案 0 :(得分:0)
这种在httpd.conf文件中使用永久重定向属性的方法可能会解决您描述的问题。因此,可以强制您的代码中的任何重定向始终通过https提供。
NameVirtualHost *:80
Listen 80
<VirtualHost *:80>
ServerName http://server-name
Redirect permanent /contextRoot https://server-name/contextRoot
</VirtualHost>
至少要考虑一个途径!