当前位置: 首页 > 工具软件 > EJBCA > 使用案例 >

EJBCA与项目整合-第三章-EJBCA源码研究-用户实体操作WebService接口调用

吴子昂
2023-12-01

第三章 EJBCA源码研究-用户实体操作WebService接口调用

    以下方法对应用户实体的增、删、改、查操作:

    1、public void editUser(final UserDataVOWS userdata) 添加、修改

    2、public void revokeUser(String username, int reason, boolean deleteUser) 删除

    3、public List<UserDataVOWS> findUser(UserMatch usermatch) 查询

    以上方法是org.ejbca.core.protocol.ws.EjbcaWS提供的WebService接口,下面的实例将说明如果使用这些方法操作用户实体。

    首先我们须要启动JBOSS服务器,并获取webService接口描述XML,文件路径为jboss_home/server/default/data/wsdl/ejbca.ear/ejbca-ws-ejb.jar/EjbcaWSService*wsdl。文件名中的“*”代表jboss自动生成的编号。使用最新生成的就行。

    在Eclipse中创建Java项目File-->New-->Java Project输入项目名WebServiceClient,将WSDL文件拷到项目根目录中,右击wsdl文件选择web services-->Generate Client

    点击Finish完成后在src下查询生成的类。这些类是Web Services客户端调用时须的。web Services客户端已经有了。现在就开始写测试代码。

    创建一个测试类,New Class,加上main方法。还须要一个准备工作就是拿到可操作ra的用户证书。为了方便就使用superadmin用户的证书吧。登录ejbca ra后台。

    生成superadmin用户的jks证书,java只认这个。(如何生成证书可看EJBCA与项目整合-第二章)

    public static void main(String[] args){

                       //设置证书和连接代码可在modules/systemtests/src/org.ejbca.core.protocol.ws.CommonEjbcaWS.setUpAdmin()方法找到

                      System.setProperty("javax.net.ssl.trustStore", "E:/ejbca/p12/superadmin.jks");
                      System.setProperty("javax.net.ssl.trustStorePassword", "ejbca");
                      System.setProperty("javax.net.ssl.keyStore", "E:/ejbca/p12/superadmin.jks");
                      System.setProperty("javax.net.ssl.keyStorePassword", "ejbca");

      EjbcaWSProxy wsProxy = new EjbcaWSProxy();

      String userName = "Admin2";  //这里是要添加用户的用户名
            String caName = "AdminCA1";//这里是CA服务器的名称,指定生成证书的CA服务器

  UserDataVOWS user = new UserDataVOWS();
       user.setUsername(userName);
       user.setPassword("test");
       user.setClearPwd(true);
       user.setSubjectDN("CN=" + userName);
       user.setCaName(caName);
       user.setEmail(null);
       user.setSubjectAltName(null);
       user.setStatus(10);     //10代表新增用户其它标识可在modules/ejbca-ws-cli/src-gen/org.ejbca.core.protocol.ws.client.gen.UserDataVOWS类中找
       user.setTokenType("P12");
       user.setEndEntityProfileName("EMPTY"); //使用的用户实体模板。自己创建了模板可用自己的。
       user.setCertificateProfileName("ENDUSER");

  wsProxy.editUser(user);//添加用户

  UserMatch usermatch = new UserMatch();
       usermatch.setMatchwith(0); //这里0代表数据库字段的username
       usermatch.setMatchtype(0); //这里是0代表相等这两的其它值在/src/java/org.ejbca.util.query.UserMatch下找到还有别的参数可用
       usermatch.setMatchvalue(userName);
      UserDataVOWS[] uVows = wsProxy.findUser(usermatch); //查询用户

  wsProxy.revokeUser(userName, 2, true);//删除用户 第二个参数代表删除用户原因,一共10种,要在/src/java/org.ejbca.core.model.ca.crl.RevokedCertInfo找到

//以上是对用户实体的增、删、改、查

  

              }

    

     


 类似资料: