知识大全 webservice的安全机制---Filter

Posted 地址

篇首语:识字粗堪供赋役,不须辛苦慕公卿。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 webservice的安全机制---Filter相关的知识,希望对你有一定的参考价值。

webservice的安全机制---Filter  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   引言        前面讲了webservice的安全机制 和 本节继续webservice的安全之旅         本节采用servlet的Filter的来实现对webservice的安全访问         在调用webservice之前 过滤器会拦截匹配的请求 只有满足安全要求的客户端才能访问webservice服务     项目环境        system:win   myeclipse:   tomcat:         JDK:开发环境 编译环境         axis:

  

   示例代码( )配置文件    web xml    web xml    <?xml version= encoding= UTF ?>    <web app version=         xmlns=         xmlns:xsi= instance         xsi:schemaLocation=         app_ _ xsd >            <! 配置webservice的处理类 >        <servlet>

        <servlet name>AxisServlet</servlet name>        <servlet class>        apache axis transport AxisServlet        </servlet class>        </servlet>        <servlet mapping>        <servlet name>AxisServlet</servlet name>        <url pattern>/services/*</url pattern>        </servlet mapping>            <! 配置IP地址的过滤器 >        <filter>        <filter name>WebServiceFilter</filter name>        <filter class>server filter WebServiceFilter</filter class>        </filter>        <filter mapping>        <filter name>WebServiceFilter</filter name>        <url pattern>/services/*</url pattern>        </filter mapping>        </web app>    server config wsdd    server config wsdd    <?xml version= encoding= UTF ?>    <deployment xmlns=         xmlns:java= >        <globalConfiguration>        <parameter name= sendMultiRefs value= true />        <parameter name= disablePrettyXML value= true />        <parameter name= adminPassword value= admin />        <parameter name= attachments Directory         value= D:\\tomcat \\webapps\\WebService\\WEB INF\\attachments />        <parameter name= dotNetSoapEncFix value= true />        <parameter name= enableNamespacePrefixOptimization         value= false />        <parameter name= sendXMLDeclaration value= true />        <parameter name= sendXsiTypes value= true />        <parameter name= attachments implementation         value= apache axis attachments AttachmentsImpl />        <requestFlow>        <handler type= java: apache axis handlers JWSHandler >        <parameter name= scope value= session />        </handler>        <handler type= java: apache axis handlers JWSHandler >        <parameter name= scope value= request />        <parameter name= extension value= jwr />        </handler>        </requestFlow>        </globalConfiguration>        <handler name= LocalResponder         type= java: apache axis transport local LocalResponder />        <handler name= URLMapper         type= java: apache axis handlers URLMapper />        <handler name= Authenticate         type= java: apache axis handlers SimpleAuthenticationHandler />        <service name= AdminService provider= java:MSG >        <parameter name= allowedMethods value= AdminService />        <parameter name= enableRemoteAdmin value= false />        <parameter name= className value= apache axis utils Admin />        <namespace>;/namespace>        </service>        <service name= Version provider= java:RPC >        <parameter name= allowedMethods value= getVersion />        <parameter name= className value= apache axis Version />        </service>            <transport name= >        <requestFlow>        <handler type= URLMapper />        <handler        type= java: apache axis handlers HTTPAuthHandler />        </requestFlow>        <parameter name= qs:list         value= apache axis transport QSListHandler />        <parameter name= qs:wsdl         value= apache axis transport QSWSDLHandler />        <parameter name= qs list         value= apache axis transport QSListHandler />        <parameter name= thod         value= apache axis transport QSMethodHandler />        <parameter name= qs:method         value= apache axis transport QSMethodHandler />        <parameter name= qs wsdl         value= apache axis transport QSWSDLHandler />        </transport>        <transport name= local >        <responseFlow>        <handler type= LocalResponder />        </responseFlow>        </transport>                <! 配置自己的服务 >        <service name= HelloService provider= java:RPC >        <parameter name= allowedMethods value= * />        <parameter name= className         value= server service HelloServiceImpl />            </service>        </deployment>    ( )服务端代码    HelloServiceImpl java webservice服务端    HelloServiceImpl java    package server service; public class HelloServiceImpl     public String hello(String s)     return hello + s;         WebServiceFilter java Filter过滤器    WebServiceFilter java    package server filter;   import java io IOException;   import javax servlet Filter; import javax servlet FilterChain; import javax servlet FilterConfig; import javax servlet ServletException; import javax servlet ServletRequest; import javax servlet ServletResponse; import javax servlet HttpServletRequest; public class WebServiceFilter implements Filter         //不允许访问webservice服务的IP地址     static final String[] deniedIPList=new String[] ;         public boolean isIPDenied(String ipAddr)     if(deniedIPList length== )     return false;     for(int i= ;i<deniedIPList length;i++)     if(deniedIPList[i] equals(ipAddr))     return true;             return false;         public void destroy()         public void doFilter(ServletRequest req ServletResponse res     FilterChain chain) throws IOException ServletException     HttpServletRequest request=(HttpServletRequest) req;         String clientIP=request getRemoteHost()     System out println( 客户端IP: +clientIP)         System out println( 开始过滤… )         if(isIPDenied(clientIP))     throw new ServletException( 你没有权限调用此webservice! )     else     chain doFilter(req res)             public void init(FilterConfig arg ) throws ServletException         ( )客户端代码    Test java 客户端动态调用的代码    Test java    package client;        import URL;        import javax xml rpc ParameterMode;        import apache axis client Call;    import apache axis encoding XMLType;        public class Test             public static void main(String args[]) throws Exception        webservice_user()                 public static void webservice_user() throws Exception         // 创建service对象 通过axis自带的类创建     apache axis client Service service = new apache axis client Service()     // 创建url对象     String wsdlUrl = //localhost: /WebService _Security/services/HelloService?wsdl ;// 请求服务的URL     URL url = new URL(wsdlUrl) // 通过URL类的构造方法传入wsdlUrl地址创建URL对象     // 创建服务方法的调用者对象call 设置call对象的属性     Call call = (Call) service createCall()     call setTargetEndpointAddress(url) // 给call对象设置请求的URL属性     String serviceName = hello ;// webservice的方法名     call setOperationName(serviceName) // 给call对象设置调用方法名属性     call addParameter( s XMLType XSD_STRING ParameterMode IN) // 给call对象设置方法的参数名 参数类型 参数模式     call setReturnType(XMLType SOAP_STRING) // 设置调用方法的返回值类型 //    call setTimeout(new Integer( )) //设置超时限制         //     //此处的用户名和密码对应WEB INF目录下users lst文件中的用户名和密码 //    call getMessageContext() setUsername( pantp ) //    call getMessageContext() setPassword( )     //         // 通过invoke方法调用webservice     String str=new String( pantp )     System out println( 开始调用webservice服务…… )     String dept = (String) call invoke(new Object[] str ) // 调用服务方法     System out println( 结束调用webservice服务…… )     // 打印返回结果     System out println( 返回结果如下 +dept)     安全测试( )正常测试(本机IP地址不在受限IP之内)     浏览器中输入wsdl地址测试

  

  运行Test客户端测试

  客户端日志

  

  服务端日志

  

    ( )受限测试(本机IP地址在受限IP之内)    修改WebServiceFilter类中deniedIPList数组所在的一行代码 加入IP地址 然后重新发布项目     修改后数组IP地址如下     受限IP地址列表     static final String[] deniedIPList=new String[] ;    浏览器中输入wsdl地址测试

  

  运行Test客户端测试

  客户端日志

  

  服务端日志

  

    总结    至此 webservice的安全相关的文章就已经介绍完了     以上都是webservice安全方面比较简单的实现措施     更多的欢迎各位的探讨 cha138/Article/program/Java/hx/201311/25712

相关参考

知识大全 Filter和Action的执行介绍

ASP.NETMVC:Filter和Action的执行介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Web App struts框架里实现Filter

WebAppstruts框架里实现Filter  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  w

知识大全 戏说java web开发中的listener和filter

  今天在公司看到有同事在写filter晚上一个人在家无聊就想聊聊这个东西  jsp开发中的监听器和过滤器这两个东西要说起来很大很繁今天我想用一个现实的例子来说明这两个东东的作用  案例描述  假设你

知识大全 Filter Warning! 请各位大虾帮帮忙呀,教教我怎么解决

我的电脑看不了视讯了,开启有些网站还显示URLFilterWarning!请各位大虾帮帮忙呀,教教我怎么解决!  以下文字资料是由(全榜网网www.cha138.com)

知识大全 基本安全机制

SQL实战新手入门:基本安全机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  基本安全机制  

如何建立和完善我国环境安全机制?

(1)加强制度建设。建立安全决策和咨询机制。要建立由国务院主要领导和有关职能部门参加的国家环境安全委员会,作为国家环境安全的最高决策咨询机构《建立环境安全评估机制。建立由相关专家组成的战略评估小组,对

如何建立和完善我国环境安全机制?

(1)加强制度建设。建立安全决策和咨询机制。要建立由国务院主要领导和有关职能部门参加的国家环境安全委员会,作为国家环境安全的最高决策咨询机构《建立环境安全评估机制。建立由相关专家组成的战略评估小组,对

知识大全 使用webservice解决多系统登陆问题

  微软NET战略的一个比较重要的部分就是webservice利用webservice我们可以创建真正有效的分布式应用程序  下面我们对webservice做一些说明  假设A是客户端B是webser

知识大全 webservice和软件接口有什么区别和联系吗

webservice和软件接口有什么区别和联系吗?webservice(SOAP)与HTTP接口的区别什么是webservice?soap请求是HTTPPOST的一个专用版本,遵循一种特殊的xml消息

知识大全 c#webservice的简单示例

  是webservice就概念上来说可能比较复杂不过我们可以有个宏观的了解webservice就是个对外的接口里面有函数可供外部客户调用(注意里面同样有客户不可调用的函数)假若我们是服务端我们写好了