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: 聯系我



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


          網站導航:
           
          主站蜘蛛池模板: 朝阳区| 上蔡县| 康乐县| 自贡市| 永丰县| 烟台市| 孝感市| 纳雍县| 当阳市| 镇原县| 琼海市| 资中县| 河东区| 灵石县| 桂林市| 阳山县| 上林县| 浦江县| 大丰市| 弋阳县| 阿巴嘎旗| 东丰县| 沿河| 新津县| 客服| 长武县| 华池县| 定南县| 湟中县| 仪陇县| 苏州市| 靖远县| 嘉鱼县| 斗六市| 樟树市| 桐梓县| 临海市| 南陵县| 五台县| 正阳县| 阳新县|