SpringBoot и oauth - PullRequest
       6

SpringBoot и oauth

0 голосов
/ 08 февраля 2019

люди, я борюсь (снова) с аутентификацией.

Я внедрил google auth в своем сервисе.И теперь я хотел бы:

  1. ограничить соединение для домена (то есть @mydomain.com)
  2. ограничить соединение для некоторого имени (то есть 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;
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...