如何在 webapp xml 配置文件中保护 sun-jaxws java web 服务

How to secure a sun-jaxws java web service inside the webapp xml config files

我有一个 sun-jaxws xml 网络服务:

package com.myWebservices.ws;

    import java.*;
    import javax.*;


    @WebService
    public class GetSomeInfo{

   //allow IP to consume web service
    private static final String IP = "192.168.0.1";

    @Resource
    WebServiceContext wsContext; 
        @WebMethod(operationName="getSomeInfo")
        public String getSomeInfo(String data) {

           MessageContext mc = wsContext.getMessageContext();
           HttpServletRequest req = (HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST);             


         //control access by IP inside the web service code
         if (!(req.getRemoteAddr().equals(IP)))         
                result = "ACCESS DENIED"; 
         else 
               String result = bean.executeSomeProcess(data);              
               return result        
        }
    }

如您所见,Web 服务受 IP 访问保护。但是web服务有public的访问权限,即使你不获取信息只有"ACCESS DENIED",你也可以消费它。

我想知道是否可以在自己的 webapp xml 文件配置中配置 web 服务 (WEB-INF/sun-jaxws.xml, web.xml, META-IN/context.xml, 或任何..) 相同的保护 IP 访问, 它会自动拒绝任何非同一授权 IP 的 Web 服务访问,甚至没有人可以使用该 Web 服务。

编辑:添加信息:

如果我可以为 JAX-RS 过滤器配置 web.xml 文件并获得 IP 保护访问权限,我真正需要知道的是什么。

谢谢。

就像在 web.xml

中添加过滤器一样简单

https://knowledgebase.progress.com/articles/Article/How-to-configure-Tomcat-to-accept-only-localhost-access-for-the-Manager-Application