import org.pac4j.core.config.Config; import org.pac4j.core.profile.CommonProfile; import org.pac4j.core.authorization.authorizer.RequireAnyRoleAuthorizer; import org.pac4j.http.client.direct.DirectBasicAuthClient; import org.pac4j.http.client.indirect.FormClient; import org.pac4j.http.client.indirect.IndirectBasicAuthClient; import org.pac4j.springframework.security.authentication.ClientAuthenticationProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SecurityConfig { @Autowired private UserService userService; @Bean public Config securityConfig() { Config config = new Config(); DirectBasicAuthClient directBasicAuthClient = new DirectBasicAuthClient(new DemoDirectAuthenticator(userService)); FormClient formClient = new FormClient("/login", new DemoFormAuthenticator(userService)); config.getClients().add(directBasicAuthClient); config.getClients().add(formClient); config.setAuthorizationGenerator((context, profiles) -> { profiles.forEach(profile -> profile.addRole("user")); return true; }); RequireAnyRoleAuthorizer requireAnyRoleAuthorizer = new RequireAnyRoleAuthorizer("admin"); config.addAuthorizer("admin", requireAnyRoleAuthorizer); ClientAuthenticationProvider authenticationProvider = new ClientAuthenticationProvider(); authenticationProvider.setClients(directBasicAuthClient, formClient); config.setClientAuthenticationProvider(authenticationProvider); return config; } }


上一篇:
下一篇:
切换中文