日期:2014-05-17  浏览次数:20634 次

jax-ws方式创建的webservice, 怎么添加handler验证?
如题,我采用下面这种 handler验证方式,发现这个验证根本就没起作用,客户端还是可以直接调用。

Java webservice security(安全)jax-ws 教程[2]
http://www.fengfly.com/plus/view-210098-1.html


俺的开发环境:MyEclipse 10.
webservice是myEclipse按jax-ws方式自动生成的;
现在IOS客户端,Android客户端,website 都有调用到webservice.

有谁知道怎么弄?
事先声明,我不需要您不经过大脑的粘贴。谢谢!


java?webservice java webservice

------解决方案--------------------
验证,最好搞个头鉴权验,当然,Webservice发布的支持带头域,服务器也做了头鉴权操作。
头域类似这样的:

  <Header> 
<Security>
<UsernameToken> 
<User>username</User> 
<Passwd>password</Passwd> 
</UsernameToken> 
</Security> 
  </Header> 

------解决方案--------------------
类名上加上@HandlerChain(file = "xxx.xml")

xxx.xml配置类似<javaee:handler-class>的东西,自己去搜搜吧
------解决方案--------------------
WS本身是开放的,进去之后。。在逻辑里面鉴权不行吗?

我现在是真心怕了JEE里那些anotation,那些各种乱七八糟的anotation实现了。弄得JAVA语言已经不是原来的JAVA语言了
------解决方案--------------------
引用:
正因为搜到一堆帮不上忙的东东,才跑到这里来问的。
我想说,我是完全照着下面这个例子做的,但是 handler 没起作用,跑起来客户端还是不需要!

Java webservice security(安全)jax-ws 教程[2]
http://www.fengfly.com/plus/view-210098-1.html

Header域的校验,有两种形式:专门做一个头鉴权类,在WSDD文件中将此类放在请求消息之前,这样它会拦截所有的Request请求。另外一种就是伪头鉴权,吧Header作为一个参数,封装到每一个请求消息入参中,每个处理逻辑的第一步都是进行Header参数的校验。

只接触过WSDD形式的,给你发个样例哈(server-config.wsdd)~

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
...
</globalConfiguration>
<handler name="LocalResponder"
type="java:org.apache.axis.transport.local.LocalResponder" />
<handler name="URLMapper"
type="java:org.apache.axis.handlers.http.URLMapper" />