example - spring security angular 5
cómo asegurar el servicio RESTful de Spring Boot con OAuth2 y Social login (1)
Estoy tratando de usar la aplicación Angular 2 Front End como cliente que consumirá el recurso del Spring Web Service RESTful.
Así que pensé en proteger este servicio web con la autenticación OAuth 2 y Social Login (Google y Facebook).
Después de iniciar sesión correctamente con Social Login, no está redirigiendo a la URL (puerto en el que se está ejecutando Angular 2 en el entorno local con 3000 puertos) desde el que realicé la solicitud, pero está redirigiendo al puerto 8080 en el entorno local
localhost: 3000 - Front End localhost: 8080 - OAuth
Seguí este tutorial https://spring.io/guides/tutorials/spring-boot-oauth2/ para el escenario anterior pero están utilizando la aplicación JAVA como su cliente y está manejando con anotaciones.
Puedo lograr el inicio de sesión social con múltiples recursos RESTful siguiendo dos ejemplos de aplicaciones, a continuación se detallan los pasos:
(1) Pago y envío https://github.com/spring-guides/tut-spring-security-and-angular-js/tree/master/oauth2
(2) Borre la carpeta "authserver" (Usaremos auth-server de otro proyecto)
(3) Checkout auth-server de la demostración social: https://github.com/spring-guides/tut-spring-boot-oauth2/tree/master/auth-server
(4) Abra application.yml del proyecto "ui" y realice los siguientes cambios:
server.port: 9001
server.context-path: /zuul
debug: true
spring:
aop:
proxy-target-class: true
security:
oauth2:
client:
client-id: acme
client-secret: acmesecret
access-token-uri: http://localhost:8080/oauth/token
user-authorization-uri: http://localhost:8080/oauth/authorize
grant-type: implicit
resource:
user-info-uri: http://localhost:8080/me
zuul:
routes:
resource:
path: /resource/**
url: http://localhost:9000/resource
user:
path: /user/**
url: http://localhost:8080/me
logging:
level:
org.springframework.security: DEBUG
(5) Abra application.yml de auth-server y agregue las propiedades de google:
google:
client:
clientId: <your client id>
clientSecret: <your client secret>
accessTokenUri: https://accounts.google.com/o/oauth2/token
scope: profile,email
userAuthorizationUri: https://accounts.google.com/o/oauth2/auth
clientAuthenticationScheme: form
redirect-uri: http://localhost:8080
resource:
userInfoUri: https://www.googleapis.com/plus/v1/people/me
(6) Abrir SocialApplication.java of auth-server: agregue bean y filtros relacionados con Google (similar a facebook y github).
(7) cambie el nombre de application.properties a application.yml del proyecto "resource" que sigue es el contenido de ese yml:
server:
port: 9000
context-path: /resource
security:
oauth2:
resource:
user-info-uri: http://localhost:8080/me
logging:
level:
org.springframework.security: DEBUG
org.springframework.web: DEBUG
(8) Ahora ejecute los proyectos auth-server, resource y ui y pulse URL con el puerto 9001 y context / zuul.