WebService发布basic auth验证以及测试连接

1. 发布Basic Author 认证#

就是在web.xml里面添加如下代码
/services/* 是路径
role1 是tomcat 下conf/tomcat-users.xml下的用户
<security-constraint>
                   <web-resource-collection>
                            <web-resource-name>Simple Authenticate Web service</web-resource-name>
                            <url-pattern>/services/*</url-pattern>
                   </web-resource-collection>
                   <auth-constraint>
                            <role-name>role1</role-name>
                   </auth-constraint>
         </security-constraint>
         <login-config>
                   <auth-method>BASIC</auth-method>
                   <realm-name>Axis Basic Authentication Area</realm-name>
         </login-config>
         <security-role>
                   <role-name>role1</role-name>
         </security-role>

#2. 效果图如下# 输入图片说明

#3. soapui测试如下# 输入图片说明

#4. axis1的连接代码 eclipse自带可以自动生成# 在BindingStub代码中的

protected org.apache.axis.client.Call createCall()
			throws java.rmi.RemoteException {
		try {
			org.apache.axis.client.Call _call = super._createCall();
			if (super.maintainSessionSet) {
				_call.setMaintainSession(super.maintainSession);
			}
//			if (super.cachedUsername != null) {
//				_call.setUsername(super.cachedUsername);
//			}
//			if (super.cachedPassword != null) {
//				_call.setPassword(super.cachedPassword);
//			}
			//设置用户名密码
			_call.setUsername(GZFZConfig.getValue("username"));
			_call.setPassword(GZFZConfig.getValue("password"));
			
			if (super.cachedEndpoint != null) {
				_call.setTargetEndpointAddress(super.cachedEndpoint);
			}
                        //设置超时的
			if (super.cachedTimeout != null) {
				_call.setTimeout(super.cachedTimeout);
			}
			if (super.cachedPortName != null) {
				_call.setPortName(super.cachedPortName);
			}
			java.util.Enumeration keys = super.cachedProperties.keys();
			while (keys.hasMoreElements()) {
				java.lang.String key = (java.lang.String) keys.nextElement();
				_call.setProperty(key, super.cachedProperties.get(key));
			}
			// All the type mapping information is registered
			// when the first call is made.
			// The type mapping information is actually registered in
			// the TypeMappingRegistry of the service, which
			// is the reason why registration is only needed for the first call.
			synchronized (this) {
				if (firstCall()) {
					// must set encoding style before registering serializers
					_call.setEncodingStyle(null);
					for (int i = 0; i < cachedSerFactories.size(); ++i) {
						java.lang.Class cls = (java.lang.Class) cachedSerClasses
								.get(i);
						javax.xml.namespace.QName qName = (javax.xml.namespace.QName) cachedSerQNames
								.get(i);
						java.lang.Object x = cachedSerFactories.get(i);
						if (x instanceof Class) {
							java.lang.Class sf = (java.lang.Class) cachedSerFactories
									.get(i);
							java.lang.Class df = (java.lang.Class) cachedDeserFactories
									.get(i);
							_call.registerTypeMapping(cls, qName, sf, df, false);
						} else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
							org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory) cachedSerFactories
									.get(i);
							org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory) cachedDeserFactories
									.get(i);
							_call.registerTypeMapping(cls, qName, sf, df, false);
						}
					}
				}
			}
			return _call;
		} catch (java.lang.Throwable _t) {
			throw new org.apache.axis.AxisFault(
					"Failure trying to get the Call object", _t);
		}
	}

#5. axis2的连接代码 可以使用WSDL2Java#

stub = new SI_PersonBusiness_ReqServiceStub(wsdlurl);
				// 认证代码 start
				HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
				auth.setUsername("****");
				auth.setPassword("****");
				stub._getServiceClient().getOptions()
						.setProperty(HTTPConstants.AUTHENTICATE, auth);

转载于:https://my.oschina.net/findurl/blog/794495

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值