加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 23:09:20 所属栏目:安全 来源:网络整理
导读:第三章 EJBCA源码研究-用户实体操作WebService接口调用 以下方法对应用户实体的增、删、改、查操作: 1、public void editUser(final UserDataVOWS userdata) 添加、修改 2、public void revokeUser(String username,int reason,boolean deleteUser) 删除 3

第三章 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找到

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

  

????????????? }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读