Java 在weblogic上为spring应用程序启用基本身份验证

Java 在weblogic上为spring应用程序启用基本身份验证,java,spring,oracle,weblogic,weblogic-10.x,Java,Spring,Oracle,Weblogic,Weblogic 10.x,我正在尝试为weblogic上托管的spring应用程序启用基本身份验证。这是我的web.xml文件: <!DOCTYPE xml> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

我正在尝试为weblogic上托管的spring应用程序启用基本身份验证。这是我的web.xml文件:

<!DOCTYPE xml>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <display-name>Servlet 3.0 Web Application</display-name>


    <servlet>
        <servlet-name>appName</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>throwExceptionIfNoHandlerFound</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appName</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>



<security-constraint>
   <web-resource-collection>
   <web-resource-name>Protected</web-resource-name>
      <url-pattern>/*</url-pattern>
   </web-resource-collection>
   <auth-constraint>
      <role-name>appName</role-name>
   </auth-constraint>
</security-constraint>

<login-config>
   <auth-method>BASIC</auth-method>
</login-config>

<security-role>
   <role-name>appName</role-name>
</security-role>    
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app  http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">
    <wls:weblogic-version>10.3.6</wls:weblogic-version>
    <wls:context-root>appName</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
    <wls:component-factory-class-name>org.springframework.jee.interfaces.SpringComponentFactor
    </wls:component-factory-class-name>
</wls:weblogic-web-app>

Servlet 3.0 Web应用程序
appName
org.springframework.web.servlet.DispatcherServlet
ThroweExceptionIfNoHandlerFound
真的
1.
appName
/*
受保护的
/*
然而,进一步的请求,如被阻止,我得到403未经授权的消息

我怎样才能解决这个问题

编辑:

My weblogic.xml文件:

<!DOCTYPE xml>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <display-name>Servlet 3.0 Web Application</display-name>


    <servlet>
        <servlet-name>appName</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>throwExceptionIfNoHandlerFound</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appName</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>



<security-constraint>
   <web-resource-collection>
   <web-resource-name>Protected</web-resource-name>
      <url-pattern>/*</url-pattern>
   </web-resource-collection>
   <auth-constraint>
      <role-name>appName</role-name>
   </auth-constraint>
</security-constraint>

<login-config>
   <auth-method>BASIC</auth-method>
</login-config>

<security-role>
   <role-name>appName</role-name>
</security-role>    
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app  http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">
    <wls:weblogic-version>10.3.6</wls:weblogic-version>
    <wls:context-root>appName</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
    <wls:component-factory-class-name>org.springframework.jee.interfaces.SpringComponentFactor
    </wls:component-factory-class-name>
</wls:weblogic-web-app>

10.3.6
appName
org.slf4j*
org.springframework*
org.springframework.jee.interfaces.SpringComponentFactor

security constraint部分中的
/**
如何?当我将其放入security constraint部分时,我发现以下错误:weblogic.management.DeploymentException:url模式“/**”无效我认为您的安全配置未完成。您还需要告知WebLogic如何将角色映射到角色
appName WEBAPP_USER
这应该在weblogic.xml文件中完成。