首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求 一个AXIS加SSL的列子,先谢了!!
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqf_1999
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-03-18 16:03:51 楼主
    求 一个AXIS加SSL的列子,先谢了!!
    最好步骤清晰点,刚学,多谢!!
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqf_1999
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-03-19 17:11:171楼 得分:0
    自已搞定了!!!
    没人帮我,就算了!!
    我把方法写下来,我后来的初学者借簦一下吧!!
    我是在一个人的blog里学的例子,但他的没有用SSL,所以我又搜了点东西,再加上项目老大的指点完成。
    例子在我的blog里(http://blog.csdn.net/xqf_1999/archive/2008/03/12/2172879.aspx),这是转载的,不是我写的。
    下边是加上SSL,
    《————————————————————————————————————————》
    使用SSL/HTTPS协议来传输
        Web服务也可以使用SSL作为传输协议。虽然JAX-RPC并没有强制规定是否使用SSL协议,但在tomcat 下使用HTTPS协议。
    1、使用JDK自带的工具创建密匙库和信任库。

      1)通过使用以下的命令来创建服务器端的密匙库:
     
    keytool -genkey -alias Server -keystore server.keystore -keyalg RSA
      输入keystore密码:  changeit
      您的名字与姓氏是什么?
      [Unknown]:  Server
      您的组织单位名称是什么?
      [Unknown]:  ec
      您的组织名称是什么?
      [Unknown]:  ec
      您所在的城市或区域名称是什么?
      [Unknown]:  beijing
      您所在的州或省份名称是什么?
      [Unknown]:  beijing
      该单位的两字母国家代码是什么
      [Unknown]:  CN
    CN=Server, OU=ec, O=ec, L=beijing, ST=beijing, C=CN 正确吗?
      [否]:  y

    输入 <Server>的主密码
            (如果和 keystore 密码相同,按回车):
      以上命令执行完成后,将获得一个名为server.keystore的密匙库。
     
      2)生成客户端的信任库。首先输出RSA证书:
     
    keytool -export -alias Server -file test_axis.cer -storepass changeit -keystore server.keystore
      然后把RSA证书输入到一个新的信任库文件中。这个信任库被客户端使用,被用来验证服务器端的身份。
     
    keytool -import -file test_axis.cer -storepass changeit -keystore client.truststore -alias serverkey -noprompt
      以上命令执行完成后,将获得一个名为client.truststore的信任库。
     
      3)同理生成客户端的密匙库client.keystore和服务器端的信任库server.truststore.方便起见给出.bat文件
        gen-cer-store.bat内容如下:
       
        set SERVER_DN="CN=Server, OU=ec, O=ec, L=BEIJINGC, S=BEIJING, C=CN"
        set CLIENT_DN="CN=Client, OU=ec, O=ec, L=BEIJING, S=BEIJING, C=CN"
        set KS_PASS=-storepass changeit
        set KEYINFO=-keyalg RSA

        keytool -genkey -alias Server -dname %SERVER_DN% %KS_PASS% -keystore server.keystore %KEYINFO% -keypass changeit
        keytool -export -alias Server -file test_axis.cer %KS_PASS% -keystore server.keystore
        keytool -import -file test_axis.cer %KS_PASS% -keystore client.truststore -alias serverkey -noprompt

        keytool -genkey -alias Client -dname %CLIENT_DN% %KS_PASS% -keystore client.keystore %KEYINFO% -keypass changeit
        keytool -export -alias Client -file test_axis.cer %KS_PASS% -keystore client.keystore
        keytool -import -file test_axis.cer %KS_PASS% -keystore server.truststore -alias clientkey -noprompt
        好的,现在我们就有了四个文件:server.keystore,server.truststore,client.keystore,client.truststore
      2、更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其实里面有,只是被注释掉了)
        <Connector port="8443"
                  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                  enableLookups="false" disableUploadTimeout="true"
                  acceptCount="100" scheme="https" secure="true"
                  clientAuth="true" keystoreFile="f:\server.keystore" keystorePass="changeit"
                    truststoreFile="f:\server.truststore" truststorePass="changeit"
                  sslProtocol="TLS" />

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    然后在上边例子的代码中有一句改成:
    private static EndpointReference targetEPR=new EndpointReference
            ("https://localhost:8443/axis2/services/HelloWorld");

    再在main()里加上:
    System.setProperty("javax.net.ssl.trustStore",
                        "D:\\Tomcat5.5\\client.truststore");////这是你的信任密匙库的位置。
                        System.setProperty("javax.net.ssl.trustStorePassword","changeit");/////密码
    运行这个例子就OK了!!!
    我想就应该是这样了吧!!
    不对的地方欢迎拍板砖!!!

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqf_1999
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-04-15 09:01:572楼 得分:0
    在tomcat-users.xml中增加角色(Tomcat_Home\conf\tomcat-users.xml)
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    … 
    <role rolename="department-manager"/>
      <user username="hellking" password="simplewebservices" roles="department-manager"/>

    </tomcat-users>
    配置对Servlet的访问控制(AXIS_HOME\WEB-INF\web.xml)
    <security-constraint>
      <web-resource-collection>
        <web-resource-name>Tax Web service </web-resource-name>
        <url-pattern>/services/PersonalTaxService </url-pattern>
      </web-resource-collection>
      <auth-constraint>
        <role-name>department-manager </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>department-manager </role-name>
    </security-role>




    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqf_1999
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-05-21 15:05:033楼 得分:0
    HttpTransportProperties.Authenticator
                        auth = new HttpTransportProperties.Authenticator();/////
                        auth.setUsername("hellking");/////
                        auth.setPassword("simplewebservices");/////
                        options.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE,auth);////////
                        System.setProperty("javax.net.ssl.trustStore",
                        "D:\\Tomcat5.5\\client.truststore");////
                        System.setProperty("javax.net.ssl.trustStorePassword","changeit");/////
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved