1. 发布Basic Author 认证# 就是在web.xml里面添加如下代码/services/* 是路径role1 是tomcat 下conf/tomcat-users.xml下的用户 security-constraint web-resource-collection web-resource-nameSimple Authenticate Web service/web
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);