Skip to content

Instantly share code, notes, and snippets.

View bvulaj's full-sized avatar
🏠
Working from home

Brandon Vulaj bvulaj

🏠
Working from home
View GitHub Profile
@bvulaj
bvulaj / AppConfig.java
Last active March 14, 2018 22:18
Third Party Injection
@Configuration
public class AppConfig {
@Bean
@ConfigurationProperties("provider")
public ProviderInfo providerInfo() {
return new ProviderInfo();
}
}
@bvulaj
bvulaj / AppConfig.java
Last active March 14, 2018 22:18
Simple Field Injection w/ @value
@Configuration
public class AppConfig {
// Using SpEL
@Value("#{providerInfo.name ?: 'bar'}")
private String providerName;
// Injecting a Duration w/ a default
@Value("${timeout:500ms}")
private Duration timeout;
}
@bvulaj
bvulaj / ProviderInfo.java
Created March 14, 2018 22:17
Basic Type Safe Injection
@Component
@ConfigurationProperties("provider")
public class ProviderInfo {
private String name;
private boolean enabled;
private List<String> roles;
}
@Autowired
private PrincipalExtractor principalExtractor;
private Filter ssoFilter() {
OAuth2ClientAuthenticationProcessingFilter facebookFilter = new OAuth2ClientAuthenticationProcessingFilter("/login/facebook");
OAuth2RestTemplate facebookTemplate = new OAuth2RestTemplate(facebook(), oauth2ClientContext);
facebookFilter.setRestTemplate(facebookTemplate);
UserInfoTokenServices tokenServices = new UserInfoTokenServices(facebookResource().getUserInfoUri(), facebook().getClientId());
tokenServices.setRestTemplate(facebookTemplate);
tokenServices.setPrincipalExtractor(principalExtractor);
@bvulaj
bvulaj / SecurityConfiguration.java
Last active December 15, 2020 16:38
Multiple Oauth2 Providers in Spring Security
@Autowired
private FacebookPrincipalExtractor facebookPrincipalExtractor;
@Autowired
private FacebookAuthoritiesExtractor facebookAuthoritiesExtractor;
@Autowired
private GooglePrincipalExtractor googlePrincipalExtractor;
@Autowired
private GoogleAuthoritiesExtractor googleAuthoritiesExtractor;
@Bean