1. 程式人生 > >cxf+spring實現ws-security的數字證書驗證方式的記錄(包括生成證書步驟)

cxf+spring實現ws-security的數字證書驗證方式的記錄(包括生成證書步驟)

 
第二步 服務端配置
1.放置證書的位置和屬性配置
將上面生成的檔案以Server開頭的檔案放置在src的cert包下
配置Server_Decrypt.properties,內容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=serverprivatekey
org.apache.ws.security.crypto.merlin.file=cert/Server_KeyStore.jks
這裡有個問題要注意,要注意去除空格,否則會報org.apache.ws.security.components.crypto.Merlin Not Found的error

配置Server_Verf.properties,內容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks 
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=clientpublickey
org.apache.ws.security.crypto.merlin.file=cert/Server_TrustStore.jks
2.設定配置檔案
(由於在上一篇文章已經有了基本的配置,這裡直接給出WSS4JInInterceptor的配置)
<bean id="WSS4JInInterceptorCert"  class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
        <constructor-arg>  
            <map>  
                <entry key="action" value="Signature Encrypt" />   
                <entry key="signaturePropFile" value="Server_SignVerf.properties"/>
                <entry key="decryptionPropFile" value="Server_Decrypt.properties"/>
                <entry key="passwordCallbackClass" value="ws.interceptor.UTPasswordServerCallBack"/>      
            </map>  
        </constructor-arg>  
    </bean>
3.UTPasswordServerCallBack類

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.io.IOException;   import javax.security.auth.callback.Callback;   import javax.security.auth.callback.CallbackHandler;   import javax.security.auth.callback.UnsupportedCallbackException;   import org.apache.ws.security.WSPasswordCallback;   public class UTPasswordServerCallBack implements CallbackHandler {   public void handle(Callback[] callbacks) throws IOException,   UnsupportedCallbackException {   WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];   pc.setPassword("keypass");   System.out.println("Server Identifier=" + pc.getIdentifier());   System.out.println("Server Password=" + pc.getPassword());   }   }

第三部 客戶端配置
1.放置證書的位置和屬性配置
將上面生成的檔案以Client開頭的檔案放置在src的cert包下
配置Client_Encrypt.properties,內容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=serverpublickey 
org.apache.ws.security.crypto.merlin.file=cert/Client_TrustStore.jks
配置Client_Sign.properties,內容如下
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.keystore.alias=clientprivatekey
org.apache.ws.security.crypto.merlin.file=cert/Client_KeyStore.jks
2.設定配置檔案(由於在上一篇文章已經有了基本的配置,這裡直接給出WSS4JOutInterceptor的配置)
<bean id="WSS4JOutInterceptorCert" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
         <constructor-arg>  
            <map>  
              <entry key="action" value="Signature Encrypt"/>
              <entry key="user" value="clientprivatekey"/>
              <entry key="signaturePropFile" value="Client_Sign.properties"/>
              <entry key="encryptionUser" value="serverpublickey"/>
                <entry key="encryptionPropFile" value="Client_Encrypt.properties"/>
                <entry key="passwordCallbackClass" value="ws.erp.UTPasswordClientCallBack"/>
              </map>  
          </constructor-arg>    
    </bean>    
3.UTPasswordClientCallBack類
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.io.IOException;   import javax.security.auth.callback.Callback;   import javax.security.auth.callback.CallbackHandler;   import javax.security.auth.callback.UnsupportedCallbackException;   import org.apache.ws.security.WSPasswordCallback;   public class UTPasswordClientCallBack implements CallbackHandler {   public void handle(Callback[] callbacks) throws IOException,   UnsupportedCallbackException {   WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];   pc.setPassword("keypass");   System.out.println("Client Identifier=" + pc.getIdentifier());   System.out.println("Client Password=" + pc.getPassword());   }   }

相關推薦

cxf+spring實現ws-security數字證書驗證方式記錄包括生成證書步驟

  第二步 服務端配置 1.放置證書的位置和屬性配置 將上面生成的檔案以Server開頭的檔案放置在src的cert包下 配置Server_Decrypt.properties,內容如下 org.apache.ws.security.crypto.provider=org.apache.ws.secur

JAVA 實現 QQ 郵箱發送驗證碼功能不局限於框架

package -o lda tor apach return stack proc pub JAVA 實現 QQ 郵箱發送驗證碼功能(不局限於框架) 本來想實現 QQ 登錄,有域名一直沒用過,還得備案,好麻煩,只能過幾天再更新啦。 先把實現的發送郵箱驗證碼更能更新了。 老

C語言實現的SM2數字簽名驗證

    最近在工作中遇到一個需求:簽名者使用密碼裝置(如加密機)生成了一些 SM2 簽名,現在使用者需要對簽名進行驗證,可是驗籤方沒有密碼裝置,驗籤必須使用軟體實現。在 CSDN 上找到了 goldboar 寫的 SM2 簽名及驗籤函式( http://download.c

XFire中實現WS-Security時出現的異常及原因

XFire中實現WS-Security時出現的異常及原因: 1.缺包,在客戶端新增xalan.jar Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xml/utils/URI$Ma

WSS4J 1.5和1.6中實現WS Security的Merlin配置上的差異以及其它

通過org.apache.ws.security.components.crypto.Merlin來實現對客戶端發出的報文進行WSS加密,在1.6以後的版本中,client_sign.properties通常會是像下面這樣的: org.apache.ws.security.

隨機數字圖片驗證碼的原理、生成和破解

驗證碼的功能一般是防止使用程式惡意註冊、暴力破解或批量發帖而設定的。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片,圖片里加上一些干擾象素(防止OCR),由使用者肉眼識別其中的驗證碼資訊,輸入表單提交網站驗證,驗證成功後才能使用某項功能。學習驗證碼的破解/識別技術,不僅可以知道驗證碼的原理,而且

html5+css實現六位數字密碼輸入對話方塊類似支付寶,微信

先來看看原型圖:直接上程式碼:html<div class="common-part pay-part"> <div class="common-dialog pay-dialog"> <div class

數字證書應用綜合揭祕包括證書生成、加密、解密、簽名、驗籤

引言 數字證書是一個經證書授權中心數字簽名的包含公開金鑰擁有者資訊以及公開金鑰的檔案。為現實網路安全化標準,如今大部分的 B2B、B2C、P2P、O2O 等商業網站,含有重要企業資料個人資料的資訊資信網站,政府機構金融機構等服務網站大部分都使用了數字證書來加強網路的安全性。數字證書一般由經過國家認證的權威機

java程式碼驗證使用者名稱,支援中英文包括全形字元數字、下劃線和減號 全形及漢字算兩位,長度為4-20位,中文按二位計數

package com.sangedabuliu.www; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UserReg { /** * 驗

laravel路由 實現短連接生成及跳轉php 301重定向

AC ont pla 分享圖片 eve 生成 rst val mage   最近懶癌犯了,本來早想做的事拖了1個月。短連接這個之前工作中發送短信是用到過,一般大的網站都會有自己的短連接生成網站,我們公司也有。當然這次我是想在自己的服務器上弄。   短連接原理:將網站地址傳到

回歸分析特征選擇包括Stepwise算法 python 實現

排序 moved lis ack adding += tick nump [1] # -*- coding: utf-8 -*-"""Created on Sat Aug 18 16:23:17 2018@author: acadsoc"""import scipyimpo

CVPR論文《100+ Times FasterWeighted Median Filter (WMF)》的實現和解析附原始碼。 任意半徑中值濾波擴充套件至百分比濾波器O(1)時間複雜度演算法的原理、實現及效果 任意半徑中值濾波擴充套件至百分比濾波器O(1)時間複雜度演算法的原理、實現

  四年前第一次看到《100+ Times FasterWeighted Median Filter (WMF)》一文時,因為他附帶了原始碼,而且還是CVPR論文,因此,當時也對程式碼進行了一定的整理和解讀,但是當時覺得這個演算法雖然對原始速度有不少的提高,但是還是比較慢。因此,沒有怎麼在意,這幾天有幾位朋友

SpringBoot通過WorkBook快速實現對Excel的匯入和匯出包括資料校驗

之前轉載過一篇對Excel基本操作相關的文章,這篇文章的瀏覽量迅速飆升,以至於在我部落格的熱門文章中排到了第三的位置,不過那篇轉載的文章實用性差並且講解不是很清晰,所以打算趁著今天休息,寫一篇關於SpringBoot通過WorkBook快速實現對Excel的匯入、匯出、資料校驗的文章,也是便於日後查

SpringBoot通過Aspect切面實現系統日誌及Mapper異常攔截包括日誌表設計

最近專案中需要記錄服務端介面訪問日誌,所以在開發過程中回顧了一下AOP相關的內容,特此記錄,便於日後查閱。 1、引入依賴 <!-- 引入aop--> <dependency> <groupId>org.springframework.boo

實現一個函式用來判斷字串是否表示數值包括整數和小數。例如,字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。

題目描述 請實現一個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 /* 思路:需要滿足一下規則(正則表

spring Security4 和 oauth2整合 註解+xml混合使用替換使用者名稱密碼認證

spring Security4 和 oauth2整合 (替換使用者名稱密碼認證) 之前已經寫了註解和xml配合搭建基本認證、頁面認證、授權碼認證、替換6位授權碼方法等,這次在前面的基礎上介紹如何替換使用者名稱密碼認證,下一篇介紹如何增加驗證碼等額外引數驗證方法。 程式碼比較多,這次只

實現一個函式用來判斷字串是否表示數值包括整數和小數。例如,字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e",&quo

package com.java.jie; public class test2 { public static void main(String [] args) { } public boolean isNumeric(char[] str) {

微信小程式實現給迴圈列表點選新增類單項和多項

在微信小程式裡面沒有DOM物件, 不能操作DOM. 所有的操作通過資料來實現,下面主要實現了給迴圈列表點選新增類的操作 一、單項 目標需求:實現下圖,給點選的view增加類,每次只能選擇一個。 主要思路:給點選的view增加類,

利用自定義的異常驗證郵箱合法性不使用正則

不用正則表示式,驗證郵箱合法性 a、本地驗證---驗證的是郵箱與密碼的格式 --郵箱: 1、要有@ . 2、@ . 前後不能為空 3、@要在 . 的前面 4、@前面的長度至少是10,包含數字,字母,且必須有大寫字母 b

Spring MongodbTemplate 查詢10公里範圍內的目標以車輛為例

Mongodb官網參考地址:https://docs.mongodb.com/manual/core/geospatial-indexes/#calculation-of-geohash-values-for-2d-indexe 1.配置Spring 和mongodb的整合