люди, я борюсь (снова) с аутентификацией.
Я внедрил google auth
в своем сервисе.И теперь я хотел бы:
- ограничить соединение для домена (то есть
@mydomain.com
) - ограничить соединение для некоторого имени (то есть
james.pastagueule@mydomain.com
разрешено и jenny.fany@mydomain.com
не разрешено)
Есть ли способ сделать это с oauth2
и spring
?
Большое спасибо за вашу помощь
вот чтоя сделал сейчас: `
application.properties
security.oauth2.client.clientId = <clientId>
security.oauth2.client.clientSecret = <clientSecret>
security.oauth2.client.accessTokenUri = https://www.googleapis.com/oauth2/v3/token
security.oauth2.client.userAuthorizationUri = https://accounts.google.com/o/oauth2/auth?hd=devoteam.com
security.oauth2.client.tokenName = oauth_token
security.oauth2.client.authenticationScheme = query
security.oauth2.client.clientAuthenticationScheme = form
security.oauth2.client.scope = profile email
security.oauth2.client.registered-redirect-uri= http://127.0.0.1:8080/mypage1
security.oauth2.resource.userInfoUri = https://www.googleapis.com/userinfo/v2/me
security.oauth2.resource.preferTokenInfo = false
WebSecurityConfiguration.java
package com.devoteam.presales.testspringsecu;
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
@Configuration
@EnableOAuth2Sso
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout().logoutSuccessUrl("/")
.permitAll();
}
}
TestspringApplication.java
package com.devoteam.presales.testspringsecu;
import java.security.Principal;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class TestspringsecuApplication {
public static void main(String[] args) {
SpringApplication.run(TestspringsecuApplication.class, args);
}
@RequestMapping(value = "/user")
public Principal user(Principal principal) {
return principal;
}
}