
com.healthy.common.security.component.CustomPermissionEvaluator Maven / Gradle / Ivy
package com.healthy.common.security.component;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.PatternMatchUtils;
import org.springframework.util.StringUtils;
import java.util.Collection;
/**
* @author xm.z
*/
@Slf4j
public class CustomPermissionEvaluator {
/**
* 判断接口是否有xxx:xxx权限
* @param permission 权限
* @return {boolean}
*/
public boolean hasPermission(String permission) {
if (!StringUtils.hasText(permission)) {
return false;
}
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null) {
return false;
}
Collection extends GrantedAuthority> authorities = authentication.getAuthorities();
return authorities.stream()
.map(GrantedAuthority::getAuthority)
.filter(StringUtils::hasText)
.anyMatch(x -> PatternMatchUtils.simpleMatch(permission, x));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy