Моё весеннее приложение должно позволять сотрудникам и внешним клиентам входить в систему с помощью Azure.
Я следую учебным пособиям по MS Azure B2 C ЗДЕСЬ , и B2 C работает. Мне также нужно разрешить Azure AD логин для сотрудников. На странице c будут отображаться кнопки входа в систему для клиентов и сотрудников.
Я добавил файлы конфигурации Azure AD, но не могу заставить его работать. B2 C config:
@Configuration
@EnableOAuth2Sso
@Order(1)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
private final AADB2COidcLoginConfigurer configurer;
public WebSecurityConfiguration(AADB2COidcLoginConfigurer configurer) {
this.configurer = configurer;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
System.out.println(" Customer is Authenticating ");
http
.authorizeRequests()
.antMatchers("/employee/**").hasRole("USER")
.antMatchers("/","/login**").permitAll()
.anyRequest()
.authenticated()
.and()
.apply(configurer)
;
}
}
Azure AD (Сотрудники)
@Configuration
@EnableOAuth2Sso
@Order(2)
public class EmployeeSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private OAuth2UserService<OidcUserRequest, OidcUser> oidcUserService;
@Override
protected void configure(HttpSecurity http) throws Exception {
System.out.println(" Employee is Authenticating ");
http
.authorizeRequests()
.antMatchers("/auth/**").hasRole("USER")
.antMatchers("/", "/login**").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.userInfoEndpoint()
.oidcUserService(oidcUserService);
}
}
Но когда я запускаю приложение, распознается только путь B2 C.
Это правильный подход? Любая помощь будет принята с благодарностью.
Кевин