想加身份验证,tomcat+axis发布的webservice,网络上貌似很多提到soapHeader里添加username和password,是一个方法,
或者调用的API后面自己再加上2个参数,一个username,一个password
两中方法表面上看起来差不多么,反正都是调用的时候就要验证一次,话说用哪种会靠谱一点?
P.S tomcat上配置SSL(连接加密???),那传递的字符串参数,包括两种方法的账号密码还需要自己再用加密算法加密一下子么?会不会多此一举?
9 个解决方案
#1
调用的API后面自己再加上2个参数,一个username,一个password
这种用起来简单,呵呵。我稀饭。
这种用起来简单,呵呵。我稀饭。
#2
+1 顶楼上
#3
#4
Up
#5
最简单的方法:
在webservice配置里加上
<requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>
在users.lst文件加入一行
用户名[空格]密码
这是一种HTTP认证。
在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楼的说法
顺便关注一下5楼的说法
#9
这个需要在发送http的时候设置
String author = new sun.misc.BASE64Encoder()
.encode((username + ":" + password).getBytes());
conn.setRequestProperty("Authorization", "Basic " + author);
#1
调用的API后面自己再加上2个参数,一个username,一个password
这种用起来简单,呵呵。我稀饭。
这种用起来简单,呵呵。我稀饭。
#2
+1 顶楼上
#3
#4
Up
#5
最简单的方法:
在webservice配置里加上
<requestFlow><handler name="authen" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/></requestFlow>
在users.lst文件加入一行
用户名[空格]密码
这是一种HTTP认证。
在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楼的说法
顺便关注一下5楼的说法
#9
这个需要在发送http的时候设置
String author = new sun.misc.BASE64Encoder()
.encode((username + ":" + password).getBytes());
conn.setRequestProperty("Authorization", "Basic " + author);