Apache Shiro加解密spring配置文件value 示例
时间: 2024-01-25 21:01:49 浏览: 87
以下是一个使用Apache Shiro加解密Spring配置文件value的示例:
1. 引入Shiro和Jasypt的依赖
```xml
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.9.3</version>
</dependency>
```
2. 配置Jasypt加密算法
在Spring配置文件中,配置Jasypt加密算法及加密所需的salt值:
```xml
<bean id="jasyptStringEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
<property name="algorithm">
<value>PBEWithMD5AndDES</value>
</property>
<property name="password">
<value>my-salt</value>
</property>
</bean>
```
3. 在Spring配置文件中使用Shiro对敏感信息进行加解密
在Spring配置文件中,使用Shiro的加解密工具类对敏感信息进行加解密:
```xml
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="dbuser" />
<property name="password">
<bean class="org.apache.shiro.config.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="jasyptStringEncryptor" />
<constructor-arg value="ENC(kIuaz8c+u+DZ13GyQfzS1g==)" />
</bean>
</property>
</bean>
```
其中,`ENC(kIuaz8c+u+DZ13GyQfzS1g==)`是加密后的密码,使用Shiro的`EncryptablePropertyPlaceholderConfigurer`类对其进行解密。
4. 创建Shiro的加解密工具类
```java
public class ShiroUtils {
private static StringEncryptor stringEncryptor;
public static void setStringEncryptor(StringEncryptor stringEncryptor) {
ShiroUtils.stringEncryptor = stringEncryptor;
}
public static String encrypt(String plainText) {
return stringEncryptor.encrypt(plainText);
}
public static String decrypt(String encryptedText) {
return stringEncryptor.decrypt(encryptedText);
}
}
```
5. 在Spring配置文件中配置Shiro的加解密工具类
```xml
<bean id="shiroUtils" class="com.example.ShiroUtils">
<property name="stringEncryptor" ref="jasyptStringEncryptor" />
</bean>
```
6. 在Java代码中使用Shiro进行加解密
```java
String plainText = "my password";
String encryptedText = ShiroUtils.encrypt(plainText);
String decryptedText = ShiroUtils.decrypt(encryptedText);
```
以上是一个使用Apache Shiro加解密Spring配置文件value的示例,可以根据实际需求进行修改和调整。
阅读全文