webservice添加用戶密碼驗證


一、增加maven 依賴


    
    
   
   
           
  1. <dependency>
  2. <groupId>org.apache.cxf </groupId>
  3. <artifactId>cxf-rt-ws-security </artifactId>
  4. <version>3.1.8 </version>
  5. </dependency>

二、spring-context配置攔截器


    
    
   
   
           
  1. <jaxws:endpoint >
  2. <jaxws:inInterceptors>
  3. <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
  4. <constructor-arg>
  5. <map>
  6. <entry key="action" value="UsernameToken" />
  7. <entry key="passwordType" value="PasswordDigest" />
  8. <entry key="passwordCallbackRef">
  9. <bean class="com.interceptor.PasswordCallback"> </bean>
  10. </entry>
  11. </map>
  12. </constructor-arg>
  13. </bean>
  14. </jaxws:inInterceptors>
  15. </jaxws:endpoint>

三、編寫PasswordCallback


    
    
   
   
           
  1. import javax.security.auth.callback.Callback;
  2. import javax.security.auth.callback.CallbackHandler;
  3. import javax.security.auth.callback.UnsupportedCallbackException;
  4. import org.apache.wss4j.common.ext.WSPasswordCallback;
  5. import java.io.IOException;
  6. public class PasswordCallback implements CallbackHandler {
  7. public void handle(Callback[] callbacks) throws IOException,
  8. UnsupportedCallbackException {
  9. WSPasswordCallback pc = (WSPasswordCallback) callbacks[ 0];
  10. String idf = pc.getIdentifier(); //ws傳過來的用戶名
  11. String pwd = null; //需查數據庫獲得密碼
  12. String cfgUser = "aaa";
  13. if(cfgUser!= null && cfgUser.equals(idf)) {
  14. pwd = "123456";
  15. } else {
  16. pwd = "error";
  17. }
  18. pc.setPassword(pwd);
  19. }
  20. }

四、soapUI 調用時設置用戶名密碼

右鍵,show Interface view


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM