Java Spring security基本身份验证在Weblogic上提示用户/密码两次
我正在尝试使用Spring security使用基本身份验证 它在Tomcat上运行良好。(按预期提示一次。) 但是当我在WebLogic12c上部署时,它会提示用户/密码对话框两次。第二个对话框需要输入weblogic管理控制台用户名密码。只有输入这两个凭证,才能登录 有什么建议吗 web.xmlJava Spring security基本身份验证在Weblogic上提示用户/密码两次,java,spring,spring-mvc,spring-security,weblogic12c,Java,Spring,Spring Mvc,Spring Security,Weblogic12c,我正在尝试使用Spring security使用基本身份验证 它在Tomcat上运行良好。(按预期提示一次。) 但是当我在WebLogic12c上部署时,它会提示用户/密码对话框两次。第二个对话框需要输入weblogic管理控制台用户名密码。只有输入这两个凭证,才能登录 有什么建议吗 web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Applicatio
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-security.xml</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Web应用程序创建的原型
上下文配置位置
/WEB-INF/spring-security.xml
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
org.springframework.web.context.ContextLoaderListener
春天
org.springframework.web.servlet.DispatcherServlet
春天
/
spring-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<context:component-scan base-package="com.jai.spring.security.controller" />
<import resource="spring-security.xml" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
spring-security.xml
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd">
<authentication-manager>
<authentication-provider>
<user-service>
<user name="jay" password="jay" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
<http create-session="stateless">
<intercept-url pattern="/**" access="ROLE_USER" />
<http-basic />
</http>
</beans:beans>
似乎您必须使用适配器: 如Spring安全参考中所述,容器适配器 使Spring Security能够直接与所使用的容器集成 托管最终用户应用程序,在本例中为WebLogic Server 实现了容器和Spring安全性之间的集成 通过适配器。适配器为用户提供与容器兼容的接口 身份验证提供程序,并且需要返回一个兼容的容器 用户对象 applicationContext-acegi-security.xml是的配置文件 春季安全。对于WebLogic服务器,WeblogicAuthenticationFilter是 已添加到applicationContext-acegi-security.xml中的筛选器列表。 此筛选器负责将Weblogic主体转换为 Spring授予的权威主题,基于mapper。地图绘制者是 配置为WeblogicAuthenticationFilter的属性,并且 在创建时注入
在web.xml文件的节之后添加下一个代码:
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
客户端证书
当它要求您进行身份验证时,您正在调用哪个url?您在哪里部署了应用程序?管理服务器或其他server@Andres我尝试过,而且在weblogic上两者的行为都是一样的。但是两者在Tomcat上的行为都是正确的。坏主意……在生产模式下,Admin服务器是为Admin保留的……现在创建一个专用的服务器,并尝试通过Spring和weblogic分别重新拦截请求。此问题中提供的解决方案将适用于您。