我使用Jdeveloper 12c开发了简单的Web服务,我希望应用基本的Auth来拒绝任何拥有访问Web服务方法链接的人,而不是我到目前为止所做的
网络服务代码
public class RestClass {
@WebMethod
public List<StudentInfoModel> GetStudnetInfo(){
StudentInfoService st=new StudentInfoService();
return (st.getStudnetInfo());
}
}
我已将安全性限制添加到 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服务方法。