使用基本身份验证的Weblogic 12c JAX-WS部署

时间:2018-03-04 17:24:29

标签: java oracle jax-ws weblogic12c jdeveloper

我使用Jdeveloper 12c开发了简单的Web服务,我希望应用基本的Auth来拒绝任何拥有访问Web服务方法链接的人,而不是我到目前为止所做的

  1. 网络服务代码

    public class RestClass {
    
    @WebMethod
    public List<StudentInfoModel> GetStudnetInfo(){
    
            StudentInfoService st=new StudentInfoService();
            return  (st.getStudnetInfo());
    
    
        }
    }
    
  2. 我已将安全性限制添加到 Web.xml ,如下所示:

    <?xml version = '1.0' encoding = 'UTF-8'?>
    <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_3_0.xsd"
             version="3.0">
        <servlet>
            <servlet-name>RestClassPort</servlet-name>
            <servlet-class>restful.RestClass</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>RestClassPort</servlet-name>
            <url-pattern>/RestClassPort</url-pattern>
        </servlet-mapping>
        <security-constraint>
            <display-name>SecurityConstraint</display-name>
            <web-resource-collection>
                <web-resource-name>RestClassPort</web-resource-name>
                <url-pattern>/RestClassPort</url-pattern>
            </web-resource-collection>
            <auth-constraint>
                <role-name>WSADMINROLE</role-name>
            </auth-constraint>
            <user-data-constraint>
                <transport-guarantee>NONE</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
        <login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>myrealm</realm-name>
        </login-config>
        <security-role>
            <role-name>WSADMINROLE</role-name>
        </security-role>
    </web-app>
    

    然后我将安全角色映射到 weblogic.xml ,如下所示

    <?xml version = '1.0' encoding = 'windows-1256'?>
    <weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.7/weblogic-web-app.xsd"
                      xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
        <security-role-assignment>
            <role-name>WSADMINROLE</role-name>
            <principal-name>WS_admin</principal-name>
        </security-role-assignment>
    </weblogic-web-app>
    

    之后我创建了新的WAR部署配置文件,然后在我从EAR程序集部分添加了先前创建的WAR之后创建了EAR部署配置文件。

    最后,我已将EAR部署到weblogic,部署并激活了Web服务,我添加了 WSADMINROLE 角色和 WS_admin ,并将该组映射到角色。问题是我无法测试Web服务,我得到了以下错误:

      

    错误403 - 禁止使用RFC 2068超文本传输​​协议 -   HTTP / 1.1:   10.4.4 403禁止

    请注意,我已选择在自定义角色下部署此Web服务。

    这样做的主要目的是在JAX-WS上应用基本身份验证 任何人都有链接将无法执行Web服务方法。

0 个答案:

没有答案