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.
有谁知道怎么弄?
事先声明,我不需要您不经过大脑的粘贴。谢谢!
------解决方案--------------------验证,最好搞个头鉴权验,当然,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语言了
------解决方案--------------------
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" />