Webservice安全机制问题(soapHeader 或者 调用添加认证参数?)

时间:2022-08-27 23:21:49
rt 

想加身份验证,tomcat+axis发布的webservice,网络上貌似很多提到soapHeader里添加username和password,是一个方法,

或者调用的API后面自己再加上2个参数,一个username,一个password

两中方法表面上看起来差不多么,反正都是调用的时候就要验证一次,话说用哪种会靠谱一点?

P.S  tomcat上配置SSL(连接加密???),那传递的字符串参数,包括两种方法的账号密码还需要自己再用加密算法加密一下子么?会不会多此一举?

9 个解决方案

#1


调用的API后面自己再加上2个参数,一个username,一个password

这种用起来简单,呵呵。我稀饭。

#2


引用 1 楼 pittzhangswing 的回复:
调用的API后面自己再加上2个参数,一个username,一个password

这种用起来简单,呵呵。我稀饭。

+1 顶楼上

#3


该回复于2011-08-18 11:59:49被版主删除

#4


引用 1 楼 pittzhangswing 的回复:
调用的API后面自己再加上2个参数,一个username,一个password

这种用起来简单,呵呵。我稀饭。


Up

#5


最简单的方法:

在webservice配置里加上
  <requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>

  <service name="WSTest1" provider="java:RPC">
  <parameter name="className" value="xx.SayHello"/>
  <parameter name="allowedMethods" value="*"/>
  <requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>
  </service>



在users.lst文件加入一行
用户名[空格]密码

这是一种HTTP认证。
 

#6


顶一个

#7


简单实用最好

#8


意外的发现不少人支持webservice提供的函数后面多加2个参数这种方法么

顺便关注一下5楼的说法

#9


引用 5 楼 trocp 的回复:
最简单的方法:

在webservice配置里加上
<requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>

XML code
  <service name="WSTest1" provider="java……


这个需要在发送http的时候设置

String author = new sun.misc.BASE64Encoder()
               .encode((username + ":" + password).getBytes());
         conn.setRequestProperty("Authorization", "Basic " + author);

#1


调用的API后面自己再加上2个参数,一个username,一个password

这种用起来简单,呵呵。我稀饭。

#2


引用 1 楼 pittzhangswing 的回复:
调用的API后面自己再加上2个参数,一个username,一个password

这种用起来简单,呵呵。我稀饭。

+1 顶楼上

#3


该回复于2011-08-18 11:59:49被版主删除

#4


引用 1 楼 pittzhangswing 的回复:
调用的API后面自己再加上2个参数,一个username,一个password

这种用起来简单,呵呵。我稀饭。


Up

#5


最简单的方法:

在webservice配置里加上
  <requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>

  <service name="WSTest1" provider="java:RPC">
  <parameter name="className" value="xx.SayHello"/>
  <parameter name="allowedMethods" value="*"/>
  <requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>
  </service>



在users.lst文件加入一行
用户名[空格]密码

这是一种HTTP认证。
 

#6


顶一个

#7


简单实用最好

#8


意外的发现不少人支持webservice提供的函数后面多加2个参数这种方法么

顺便关注一下5楼的说法

#9


引用 5 楼 trocp 的回复:
最简单的方法:

在webservice配置里加上
<requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>

XML code
  <service name="WSTest1" provider="java……


这个需要在发送http的时候设置

String author = new sun.misc.BASE64Encoder()
               .encode((username + ":" + password).getBytes());
         conn.setRequestProperty("Authorization", "Basic " + author);