RuoYi
4 years ago
21 changed files with 192 additions and 89 deletions
@ -1,66 +1,65 @@
@@ -1,66 +1,65 @@
|
||||
package com.ruoyi.common.security.utils; |
||||
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
||||
import com.ruoyi.common.core.constant.CacheConstants; |
||||
import com.ruoyi.common.core.text.Convert; |
||||
import com.ruoyi.common.core.utils.ServletUtils; |
||||
|
||||
/** |
||||
* 权限获取工具类 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class SecurityUtils |
||||
{ |
||||
/** |
||||
* 获取用户 |
||||
*/ |
||||
public static String getUsername() |
||||
{ |
||||
return ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME); |
||||
} |
||||
|
||||
/** |
||||
* 获取用户ID |
||||
*/ |
||||
public static Long getUserId() |
||||
{ |
||||
return Convert.toLong(ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USER_ID)); |
||||
} |
||||
|
||||
/** |
||||
* 是否为管理员 |
||||
* |
||||
* @param userId 用户ID |
||||
* @return 结果 |
||||
*/ |
||||
public static boolean isAdmin(Long userId) |
||||
{ |
||||
return userId != null && 1L == userId; |
||||
} |
||||
|
||||
/** |
||||
* 生成BCryptPasswordEncoder密码 |
||||
* |
||||
* @param password 密码 |
||||
* @return 加密字符串 |
||||
*/ |
||||
public static String encryptPassword(String password) |
||||
{ |
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); |
||||
return passwordEncoder.encode(password); |
||||
} |
||||
|
||||
/** |
||||
* 判断密码是否相同 |
||||
* |
||||
* @param rawPassword 真实密码 |
||||
* @param encodedPassword 加密后字符 |
||||
* @return 结果 |
||||
*/ |
||||
public static boolean matchesPassword(String rawPassword, String encodedPassword) |
||||
{ |
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); |
||||
return passwordEncoder.matches(rawPassword, encodedPassword); |
||||
} |
||||
} |
||||
package com.ruoyi.common.core.utils; |
||||
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
||||
import com.ruoyi.common.core.constant.CacheConstants; |
||||
import com.ruoyi.common.core.text.Convert; |
||||
|
||||
/** |
||||
* 权限获取工具类 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class SecurityUtils |
||||
{ |
||||
/** |
||||
* 获取用户 |
||||
*/ |
||||
public static String getUsername() |
||||
{ |
||||
return ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME); |
||||
} |
||||
|
||||
/** |
||||
* 获取用户ID |
||||
*/ |
||||
public static Long getUserId() |
||||
{ |
||||
return Convert.toLong(ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USER_ID)); |
||||
} |
||||
|
||||
/** |
||||
* 是否为管理员 |
||||
* |
||||
* @param userId 用户ID |
||||
* @return 结果 |
||||
*/ |
||||
public static boolean isAdmin(Long userId) |
||||
{ |
||||
return userId != null && 1L == userId; |
||||
} |
||||
|
||||
/** |
||||
* 生成BCryptPasswordEncoder密码 |
||||
* |
||||
* @param password 密码 |
||||
* @return 加密字符串 |
||||
*/ |
||||
public static String encryptPassword(String password) |
||||
{ |
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); |
||||
return passwordEncoder.encode(password); |
||||
} |
||||
|
||||
/** |
||||
* 判断密码是否相同 |
||||
* |
||||
* @param rawPassword 真实密码 |
||||
* @param encodedPassword 加密后字符 |
||||
* @return 结果 |
||||
*/ |
||||
public static boolean matchesPassword(String rawPassword, String encodedPassword) |
||||
{ |
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); |
||||
return passwordEncoder.matches(rawPassword, encodedPassword); |
||||
} |
||||
} |
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.common.security.feign; |
||||
|
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import feign.RequestInterceptor; |
||||
|
||||
/** |
||||
* Feign 配置注册 |
||||
* |
||||
* @author ruoyi |
||||
**/ |
||||
@Configuration |
||||
public class FeignAutoConfiguration |
||||
{ |
||||
@Bean |
||||
public RequestInterceptor requestInterceptor() |
||||
{ |
||||
return new FeignRequestInterceptor(); |
||||
} |
||||
} |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
package com.ruoyi.common.security.feign; |
||||
|
||||
import java.util.Map; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import org.springframework.stereotype.Component; |
||||
import com.ruoyi.common.core.constant.CacheConstants; |
||||
import com.ruoyi.common.core.utils.ServletUtils; |
||||
import com.ruoyi.common.core.utils.StringUtils; |
||||
import feign.RequestInterceptor; |
||||
import feign.RequestTemplate; |
||||
|
||||
/** |
||||
* feign 请求拦截器 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
@Component |
||||
public class FeignRequestInterceptor implements RequestInterceptor |
||||
{ |
||||
@Override |
||||
public void apply(RequestTemplate requestTemplate) |
||||
{ |
||||
HttpServletRequest httpServletRequest = ServletUtils.getRequest(); |
||||
if (StringUtils.isNotNull(httpServletRequest)) |
||||
{ |
||||
Map<String, String> headers = ServletUtils.getHeaders(httpServletRequest); |
||||
// 传递用户信息请求头,防止丢失
|
||||
String userId = headers.get(CacheConstants.DETAILS_USER_ID); |
||||
if (StringUtils.isNotEmpty(userId)) |
||||
{ |
||||
requestTemplate.header(CacheConstants.DETAILS_USER_ID, userId); |
||||
} |
||||
String userName = headers.get(CacheConstants.DETAILS_USERNAME); |
||||
if (StringUtils.isNotEmpty(userName)) |
||||
{ |
||||
requestTemplate.header(CacheConstants.DETAILS_USERNAME, userName); |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue