1. 修改web.xmlweb
在web.xml中添加以下配置:瀏覽器
<security-role> <description>Normal operator user</description> <role-name>WsOperator</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name>AxisServlet</web-resource-name> <url-pattern>/services/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>WsOperator</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config>
其中<web-resource-name>與已配置的<servlet-name>「AxisServlet」保持一致 <url-pattern>配置須要驗證的url,/services/* 表示services下的全部請求都要驗證 <role-name>配置有權訪問此webService資源的角色 <auth-method>配置服務器端的驗證模式tomcat
2. 修改tomcat配置服務器
在${TOMCAT_HOME}/conf/tomcat-users.xml中添加以下配置:url
<role rolename="WsOperator"/> <user username="test" password="test" roles="WsOperator"/>
web.xml中的<role-name>與此處的rolename保持一致 啓動tomcat,在瀏覽器地址欄中打開webService,會彈出basic驗證框 code
輸入正確的用戶名和密碼便可正常訪問 orm
3. 客戶端調用xml
將webService資源設置爲basic驗證後,客戶端直接調用會報401(無權限)錯誤,須要在客戶端發起遠程調用時設置服務器訪問用戶名及密碼。 使用axis調用方式添加如下代碼:ip
call.setProperty(Call.USERNAME_PROPERTY, "test"); call.setProperty(Call.PASSWORD_PROPERTY, "test");
若使用RPC遠程調用方式添加如下代碼便可:資源
options = serviceClient.getOptions(); HttpTransportProperties.Authenticator basicauth = new HttpTransportProperties.Authenticator(); basicauth.setUsername("test"); //服務器訪問用戶名 basicauth.setPassword("test"); //服務器訪問密碼 options.setProperty(HTTPConstants.AUTHENTICATE, basicauth);