J2EE社區

          茍有恒,何必三更起五更眠;
          最無益,只怕一日曝十日寒.
          posts - 241, comments - 318, trackbacks - 0, articles - 16

          java Web Service axis (實例五) 安全驗證

          Posted on 2010-08-19 09:51 xcp 閱讀(1465) 評論(0)  編輯  收藏
          http://dev.firnow.com/course/4_webprogram/php/phpjs/20100721/480316.html  里面做得比較詳細


          我自己做了一個簡單的。。。
          1.資料綁定類ResourceManager

           
          package cn.gov.luzhou.SiteServer.user.business.util;
          import java.util.ResourceBundle;
          public class ResourceManager 
          {
              
          private static ResourceBundle r = null;
              
          static 
              {
                  r 
          = ResourceBundle.getBundle("serviceAuthor");
              }
              
          public final static String getValue(String key){
                  
          return r.getString(key);
              }
              
          public final static void refresh()
              {
                  r 
          = ResourceBundle.getBundle("BasicConfig");
              }
              
          public  static void main(String args[])
              {
                  System.out.println(getValue(
          "egssadmin"));
              }
          }


          2.Hander處理類    
          package cn.gov.luzhou.SiteServer.user.business.webService;

          import org.apache.axis.AxisFault;
          import org.apache.axis.MessageContext;
          import org.apache.axis.handlers.BasicHandler;

          import cn.gov.luzhou.SiteServer.user.business.util.ResourceManager;
          import cn.gov.luzhou.SiteServer.user.business.util.SignUtil;

          /**
           *
           * 
          @author  向才鵬
           * 
          @version  1.0
           * Copyright (C), 2009,www.soujava.cn所有
           * Date: Aug 18, 2010 4:27:20 PM
           
          */
          public class AutherHandle extends BasicHandler {
              
          /**
               *
               * 
          @author  向才鵬
               * Aug 18, 2010 4:28:07 PM
               
          */
              
          private static final long serialVersionUID = 1L;

              @SuppressWarnings(
          "unchecked")
              
          public void invoke(MessageContext msgContext) throws AxisFault{
                  String userID 
          = msgContext.getUsername();
                  String psw 
          = msgContext.getPassword();
                  
          //System.out.println("CommandHandle: userID:["+userID+"] psw:["+psw+"]");
                  if(userID != null && psw != null){
                     String value  
          = ResourceManager.getValue(userID);
                     String value2 
          = "";
                     
          try {
                         value2
          = new String(SignUtil.decryptBASE64(psw));
                      } 
          catch (Exception e) {
                          e.printStackTrace();
                      }
                     
          if(!value2.equals(value)){
                         
          throw new AxisFault("Illegal user.",new Exception("你沒有訪問權限"));
                     }
                  }
          else{
                      
          throw new AxisFault("Illegal user.",new Exception("請加上訪問權限,如需要幫助聯系技術支持部!"));
                  }
              }
          }


          3.deploy.wsdd
          <?xml version="1.0" encoding="UTF-8"?>
          <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
               
          <handler name="track" type="java:cn.gov.luzhou.SiteServer.user.business.webService.AutherHandle"></handler>
              
          <service name="UserService" provider="java:RPC">
                  
          <parameter name="className" value="cn.gov.luzhou.SiteServer.user.business.webService.UserService"/>
                  
          <parameter name="allowedMethods" value="*"/>
                  
          <typeMapping qname="my:User"     xmlns:my="urn:UserService" 
                      encodingStyle
          ="http://schemas.xmlsoap.org/soap/encoding/" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
                      deserializer
          ="org.apache.axis.encoding.ser.BeanDeserializerFactory" type="java:cn.gov.luzhou.SiteServer.user.web.vo.SysUserVo"/>
                  
          <requestFlow>
                      
          <handler type="track"/>
                  
          </requestFlow>
                  
          <responseFlow>
                      
          <handler type="track"/>
                  
          </responseFlow>
                  
              
          </service>
          </deployment>

          4.Clinet類
          package three;

          import java.rmi.RemoteException;

          import org.apache.axis.AxisFault;

          import util.SignUtil;

          public class T1 {

              public static void main(String[] args) {
                  UserServiceSoapBindingStub binding;
                  try {
                      binding = (three.UserServiceSoapBindingStub) new UserServiceServiceLocator().getUserService();
                      binding.setUsername("egssadmin");
                      try {
                          binding.setPassword(SignUtil.encryptBASE64("xcp12300".getBytes()));
                      } catch (Exception e) {
                          e.printStackTrace();
                      }
                  } catch (javax.xml.rpc.ServiceException jre) {
                      if (jre.getLinkedCause() != null)
                          jre.getLinkedCause().printStackTrace();
                      throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException caught: " + jre);
                  }
                  
                  // Time out after a minute
                  binding.setTimeout(60000);
                  User value = null;
                  try {
                      value = binding.login("admin1","111111");
                  } catch (AxisFault fault) {
                      System.out.println("1Error : " + fault.getMessage());
                  }  catch (RemoteException e) {
                      e.printStackTrace();
                  }
                  
                  System.out.println(value.getRealName());
              }
          }



          最后:webservice-之使用axis+spring開發
          http://wenku.baidu.com/view/e8a411225901020207409c62.html


          名稱: ?4C.ESL | .↗Evon
          口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
          mail: 聯系我



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 深泽县| 调兵山市| 南雄市| 沁水县| 阿合奇县| 通山县| 东乡县| 怀宁县| 江口县| 祁门县| 腾冲县| 分宜县| 额济纳旗| 陆河县| 永康市| 启东市| 永平县| 怀仁县| 牟定县| 镇康县| 临高县| 平顶山市| 宜川县| 乌兰察布市| 廊坊市| 安达市| 丹凤县| 龙山县| 商城县| 夹江县| 涿州市| 托克逊县| 长子县| 汾阳市| 普兰店市| 桃园市| 新沂市| 广西| 库车县| 永善县| 沾益县|