<dependency>
<groupId>org.pac4j</groupId>
<artifactId>pac4j-core</artifactId>
<version>4.1.0</version>
</dependency>
public class SecurityModule extends AbstractModule {
@Override
protected void configure() {
PropertyHolder propertyHolder = new PropertyHolder();
OidcConfiguration oidcConfiguration = new OidcConfiguration();
oidcConfiguration.setClientId(propertyHolder.getClientId());
oidcConfiguration.setClientSecret(propertyHolder.getClientSecret());
bind(OidcConfiguration.class).toInstance(oidcConfiguration);
JwkSigningKeyResolverFactory jwkFactory = new JwkSigningKeyResolverFactory();
jwkFactory.setJwkSetUri(propertyHolder.getJwkSetUrl());
bind(JwkSigningKeyResolverFactory.class).toInstance(jwkFactory);
JwtAuthenticator jwtAuthenticator = new JwtAuthenticator();
jwtAuthenticator.setIssuer(propertyHolder.getIssuer());
jwtAuthenticator.setAudience(propertyHolder.getAudience());
bind(JwtAuthenticator.class).toInstance(jwtAuthenticator);
}
}
public class MyApp {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new SecurityModule());
SecurityConfig securityConfig = injector.getInstance(SecurityConfig.class);
// ...
}
}