https://github.com/spring-projects/spring-security-oauth/issues/730
@Slf4j @Component ("Permissionservice") public class Uacpermissionserviceimpl implements uacpermissionservice{private
Antpathmatcher antpathmatcher = new Antpathmatcher (); @Override public boolean haspermission (authentication authentication, HttpServletRequest request) {String cur
Rentloginname = Securityutils.getcurrentloginname ();
set<string> Currentauthorityurl = Securityutils.getcurrentauthorityurl ();
String RequestUri = Request.getrequesturi (); Log.info ("Verify Permissions loginname={}, requesturi={}, hasauthorityurl={}", Currentloginname, RequestUri, Joiner.on (","). Join (
Currentauthorityurl));
if (Stringutils.equals (Currentloginname, GlobalConstant.Sys.SUPER_MANAGER_LOGIN_NAME)) {return true; } for (final String Authority:currentauthorityurl) {//Demo project leave query permission if (Requesturi.con Tains ("query") | | Requesturi.contains ("get") | | Requesturi.contains ("check") | | Requesturi.contains ("Select")) {return true;
} if (Antpathmatcher.match (authority, RequestUri)) {return true;
}} return false; }
}
@Order @Component public class Pcpermissionauthorizeconfigprovider implements
Authorizeconfigprovider {/** * Config Boolean. * * @param config the config * * @return the Boolean */@Override public boolean config (expres Sionurlauthorizationconfigurer
@Configuration public
class Pcsecurityexpressionhandler extends Oauth2websecurityexpressionhandler {
@Bean Public
Oauth2websecurityexpressionhandler Oauth2websecurityexpressionhandler (applicationcontext ApplicationContext) {
Oauth2websecurityexpressionhandler Expressionhandler = new Oauth2websecurityexpressionhandler ();
Expressionhandler.setapplicationcontext (ApplicationContext);
return expressionhandler;
}
}
@Configuration
@EnableResourceServer Public
class Pcresourceserverconfig extends Resourceserverconfigureradapter {
@Override public
void Configure (Resourceserversecurityconfigurer Resources) {
resources.expressionhandler (pcsecurityexpressionhandler);
}
}
Take a moment to record it later.