Browse Source

Authorization

dagarcos 1 year ago
parent
commit
6205fed886
17 changed files with 44 additions and 66 deletions
  1. BIN
      DBCDS_S13_1.png
  2. 2 2
      DBCDS_S13_1_Config/src/main/java/es/uv/garcosda/config/DbcdsS131ConfigApplication.java
  3. 4 1
      DBCDS_S13_1_Config/src/main/resources/config/api-gateway.properties
  4. 1 1
      DBCDS_S13_1_Config/src/main/resources/config/auth-service.properties
  5. 2 2
      DBCDS_S13_1_Data/src/main/java/es/uv/garcosda/data/DbcdsS131DataApplication.java
  6. 3 3
      DBCDS_S13_1_Eureka/src/main/java/es/uv/garcosda/eureka/DbcdsS131EurekaApplication.java
  7. 6 4
      DBCDS_S13_1_Front/client.html
  8. 2 2
      DBCDS_S13_1_Gateway/src/main/java/es/uv/garcosda/gateway/DbcdsS131GatewayApplication.java
  9. 9 4
      DBCDS_S13_1_Gateway/src/main/java/es/uv/garcosda/gateway/security/AuthFilter.java
  10. 2 2
      DBCDS_S13_1_Input/src/main/java/es/uv/garcosda/input/DbcdsS131InputApplication.java
  11. 0 13
      DBCDS_S13_1_Input/src/test/java/es/uv/garcosda/input/DbcdsS111InputApplicationTests.java
  12. 2 2
      DBCDS_S13_1_Mail/src/main/java/es/uv/garcosda/mail/DbcdsS131MailApplication.java
  13. 8 1
      DBCDS_S13_1_Mail/src/main/java/es/uv/garcosda/mail/controllers/MailerController.java
  14. 0 13
      DBCDS_S13_1_Mail/src/test/java/es/uv/garcosda/mail/DbcdsS111MailApplicationTests.java
  15. 2 2
      DBCDS_S13_1_Output/src/main/java/es/uv/garcosda/output/DbcdsS131OutputApplication.java
  16. 0 13
      DBCDS_S13_1_Output/src/test/java/es/uv/garcosda/output/DbcdsS111OutputApplicationTests.java
  17. 1 1
      DBCDS_S13_1_Shared/target/classes/META-INF/maven/es.uv.garcosda.shared/DBCDS_S13_1_Shared/pom.properties

BIN
DBCDS_S13_1.png


+ 2 - 2
DBCDS_S13_1_Config/src/main/java/es/uv/garcosda/config/DbcdsS111ConfigApplication.java → DBCDS_S13_1_Config/src/main/java/es/uv/garcosda/config/DbcdsS131ConfigApplication.java

@@ -6,10 +6,10 @@ import org.springframework.cloud.config.server.EnableConfigServer;
 
 @SpringBootApplication
 @EnableConfigServer
-public class DbcdsS111ConfigApplication {
+public class DbcdsS131ConfigApplication {
 
 	public static void main(String[] args) {
-		SpringApplication.run(DbcdsS111ConfigApplication.class, args);
+		SpringApplication.run(DbcdsS131ConfigApplication.class, args);
 	}
 
 }

+ 4 - 1
DBCDS_S13_1_Config/src/main/resources/config/api-gateway.properties

@@ -7,6 +7,7 @@ server.port=8080
 mailer.input.url=http://input-service/api/v1
 mailer.output.url=http://output-service/api/v1
 mailer.data.url=http://data-service/api/v1
+mailer.auth.url=http://auth-service
 
 mailer.auth.name=auth-service
 mailer.auth.path=/auth
@@ -27,4 +28,6 @@ spring.cloud.gateway.routes[0].filters[0]=AuthFilter
 
 spring.cloud.gateway.routes[1].id=${mailer.auth.name}
 spring.cloud.gateway.routes[1].uri=lb://${mailer.auth.name}
-spring.cloud.gateway.routes[1].predicates[0]=Path=${mailer.auth.path}/**
+spring.cloud.gateway.routes[1].predicates[0]=Path=${mailer.auth.path}/**
+
+

+ 1 - 1
DBCDS_S13_1_Config/src/main/resources/config/auth-service.properties

@@ -8,6 +8,6 @@ eureka.instance.hostname=localhost
 eureka.client.service-url.default-zone=http://127.0.0.1:8761/eureka
 eureka.instance.instance-id=${spring.application.name}:${random.uuid}
 
-sys.token.issuer=News service
+sys.token.issuer=Mailer
 sys.token.key=MySuperSecureEncriptedAndProtectedKey
 sys.token.duration=600000

+ 2 - 2
DBCDS_S13_1_Data/src/main/java/es/uv/garcosda/data/DbcdsS111DataApplication.java → DBCDS_S13_1_Data/src/main/java/es/uv/garcosda/data/DbcdsS131DataApplication.java

@@ -4,10 +4,10 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
-public class DbcdsS111DataApplication {
+public class DbcdsS131DataApplication {
 
 	public static void main(String[] args) {
-		SpringApplication.run(DbcdsS111DataApplication.class, args);
+		SpringApplication.run(DbcdsS131DataApplication.class, args);
 	}
 
 }

+ 3 - 3
DBCDS_S13_1_Eureka/src/main/java/es/uv/garcosda/file/DbcdsS111EurekaApplication.java → DBCDS_S13_1_Eureka/src/main/java/es/uv/garcosda/eureka/DbcdsS131EurekaApplication.java

@@ -1,4 +1,4 @@
-package es.uv.garcosda.file;
+package es.uv.garcosda.eureka;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -6,10 +6,10 @@ import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
 
 @SpringBootApplication
 @EnableEurekaServer
-public class DbcdsS111EurekaApplication {
+public class DbcdsS131EurekaApplication {
 
 	public static void main(String[] args) {
-		SpringApplication.run(DbcdsS111EurekaApplication.class, args);
+		SpringApplication.run(DbcdsS131EurekaApplication.class, args);
 	}
 
 }

+ 6 - 4
DBCDS_S13_1_Front/client.html

@@ -149,9 +149,11 @@
             .done(function(data) {
                console.log(data.access_token);
                token = data.access_token;
+               $('#alert').removeClass('alert-warning').addClass('alert-success').text("Correctly athenticated").show();
+               setTimeout(close_alert, 5000);
             })
             .fail(function(data, textStatus, xhr) {
-                 $('#alert').text("Not autenticated").show();
+                 $('#alert').removeClass('alert-success').addClass('alert-warning').text("Not autenticated").show();
                  setTimeout(close_alert, 5000);
             });
         }
@@ -171,7 +173,7 @@
                     });
                 })
                 .fail(function(data, textStatus, xhr) {
-                    $('#alert').text("Not autenticated").show();
+                    $('#alert').removeClass('alert-success').addClass('alert-warning').text("Not autenticated").show();
                     setTimeout(close_alert, 5000);
                 });
         }
@@ -211,7 +213,7 @@
                console.log(data);
             })
             .fail(function(data, textStatus, xhr) {
-                 $('#alert').text("Not autenticated").show();
+                 $('#alert').removeClass('alert-success').addClass('alert-warning').text("Not autenticated").show();
                  setTimeout(close_alert, 5000);
             });
             
@@ -231,7 +233,7 @@
                 }
             })
             .fail(function(data, textStatus, xhr) {
-                 $('#alert').text("Not autenticated").show();
+                 $('#alert').removeClass('alert-success').addClass('alert-warning').text("Not autenticated").show();
                  setTimeout(close_alert, 5000);
             });
         }

+ 2 - 2
DBCDS_S13_1_Gateway/src/main/java/es/uv/garcosda/gateway/DbcdsS111GatewayApplication.java → DBCDS_S13_1_Gateway/src/main/java/es/uv/garcosda/gateway/DbcdsS131GatewayApplication.java

@@ -4,10 +4,10 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
-public class DbcdsS111GatewayApplication {
+public class DbcdsS131GatewayApplication {
 
 	public static void main(String[] args) {
-		SpringApplication.run(DbcdsS111GatewayApplication.class, args);
+		SpringApplication.run(DbcdsS131GatewayApplication.class, args);
 	}
 
 }

+ 9 - 4
DBCDS_S13_1_Gateway/src/main/java/es/uv/garcosda/gateway/security/AuthFilter.java

@@ -1,14 +1,13 @@
 package es.uv.garcosda.gateway.security;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.gateway.filter.GatewayFilter;
 import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
 import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 import org.springframework.http.server.reactive.ServerHttpResponse;
 import org.springframework.stereotype.Component;
 import org.springframework.web.reactive.function.client.WebClient;
-import org.springframework.web.reactive.function.client.WebClientResponseException;
 
 import com.google.common.net.HttpHeaders;
 
@@ -20,6 +19,9 @@ public class AuthFilter extends AbstractGatewayFilterFactory<AuthFilter.Config>
 	@Autowired
 	private WebClient.Builder client;
 	
+	@Value("${mailer.auth.url}")
+	private String auth_url;
+	
 	public AuthFilter() {
         super(Config.class);
     }
@@ -46,7 +48,7 @@ public class AuthFilter extends AbstractGatewayFilterFactory<AuthFilter.Config>
 			try {
 				return client.build()
 					         .get()
-					         .uri("http://auth-service/auth/authorize")
+					         .uri(auth_url+"/auth/authorize")
 					         .header(HttpHeaders.AUTHORIZATION, authHeader)
 					         .retrieve()
 					         .onStatus(httpStatus -> httpStatus.value() != HttpStatus.ACCEPTED.value(),
@@ -56,7 +58,10 @@ public class AuthFilter extends AbstractGatewayFilterFactory<AuthFilter.Config>
 					       	     if(entity.getStatusCode().equals(HttpStatus.UNAUTHORIZED)) {
 					    	 	     response.setStatusCode(HttpStatus.UNAUTHORIZED);
 					    	 	     return response.setComplete();
-					    	     }	 
+					    	     }	
+					       	     exchange.getRequest()
+					       	     		 .mutate()
+					       	     		 .header("x-auth-user-id", entity.getBody());
 					    	     return chain.filter(exchange);
 					         });
 			}

+ 2 - 2
DBCDS_S13_1_Input/src/main/java/es/uv/garcosda/input/DbcdsS111InputApplication.java → DBCDS_S13_1_Input/src/main/java/es/uv/garcosda/input/DbcdsS131InputApplication.java

@@ -7,7 +7,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.web.client.RestTemplate;
 
 @SpringBootApplication
-public class DbcdsS111InputApplication {
+public class DbcdsS131InputApplication {
 
 	@LoadBalanced
 	@Bean
@@ -16,7 +16,7 @@ public class DbcdsS111InputApplication {
 	}
 	
 	public static void main(String[] args) {
-		SpringApplication.run(DbcdsS111InputApplication.class, args);
+		SpringApplication.run(DbcdsS131InputApplication.class, args);
 	}
 
 }

+ 0 - 13
DBCDS_S13_1_Input/src/test/java/es/uv/garcosda/input/DbcdsS111InputApplicationTests.java

@@ -1,13 +0,0 @@
-package es.uv.garcosda.input;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class DbcdsS111InputApplicationTests {
-
-	@Test
-	void contextLoads() {
-	}
-
-}

+ 2 - 2
DBCDS_S13_1_Mail/src/main/java/es/uv/garcosda/mail/DbcdsS111MailApplication.java → DBCDS_S13_1_Mail/src/main/java/es/uv/garcosda/mail/DbcdsS131MailApplication.java

@@ -7,7 +7,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.web.client.RestTemplate;
 
 @SpringBootApplication
-public class DbcdsS111MailApplication {
+public class DbcdsS131MailApplication {
 
 	@LoadBalanced
 	@Bean
@@ -17,7 +17,7 @@ public class DbcdsS111MailApplication {
 	
 	
 	public static void main(String[] args) {
-		SpringApplication.run(DbcdsS111MailApplication.class, args);
+		SpringApplication.run(DbcdsS131MailApplication.class, args);
 	}
 
 }

+ 8 - 1
DBCDS_S13_1_Mail/src/main/java/es/uv/garcosda/mail/controllers/MailerController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.ResourceAccessException;
@@ -42,9 +43,15 @@ public class MailerController {
 	}
 	
 	@GetMapping("{mail}")
-	public ResponseEntity<?> getMails(@PathVariable String mail){
+	public ResponseEntity<?> getMails(@PathVariable String mail, @RequestHeader("x-auth-user-id") String user){
 		ResponseEntity<MailDTO[]> response;
 		List<MailDTO> mails = new ArrayList<MailDTO>();
+		
+		if(!user.equals(mail)) {
+			System.out.println(user);
+			return new ResponseEntity<List<MailDTO>>(mails, HttpStatus.FORBIDDEN);
+		}
+		
 		try {
 			response = template.getForEntity(input_api+"/"+mail, MailDTO[].class); 
 		}

+ 0 - 13
DBCDS_S13_1_Mail/src/test/java/es/uv/garcosda/mail/DbcdsS111MailApplicationTests.java

@@ -1,13 +0,0 @@
-package es.uv.garcosda.mail;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class DbcdsS111MailApplicationTests {
-
-	@Test
-	void contextLoads() {
-	}
-
-}

+ 2 - 2
DBCDS_S13_1_Output/src/main/java/es/uv/garcosda/output/DbcdsS111OutputApplication.java → DBCDS_S13_1_Output/src/main/java/es/uv/garcosda/output/DbcdsS131OutputApplication.java

@@ -7,7 +7,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.web.client.RestTemplate;
 
 @SpringBootApplication
-public class DbcdsS111OutputApplication {
+public class DbcdsS131OutputApplication {
 
 	@LoadBalanced
 	@Bean
@@ -16,7 +16,7 @@ public class DbcdsS111OutputApplication {
 	}
 	
 	public static void main(String[] args) {
-		SpringApplication.run(DbcdsS111OutputApplication.class, args);
+		SpringApplication.run(DbcdsS131OutputApplication.class, args);
 	}
 
 }

+ 0 - 13
DBCDS_S13_1_Output/src/test/java/es/uv/garcosda/output/DbcdsS111OutputApplicationTests.java

@@ -1,13 +0,0 @@
-package es.uv.garcosda.output;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class DbcdsS111OutputApplicationTests {
-
-	@Test
-	void contextLoads() {
-	}
-
-}

+ 1 - 1
DBCDS_S13_1_Shared/target/classes/META-INF/maven/es.uv.garcosda.shared/DBCDS_S13_1_Shared/pom.properties

@@ -1,5 +1,5 @@
 #Generated by Maven Integration for Eclipse
-#Tue May 02 21:17:20 CEST 2023
+#Wed May 03 08:34:13 CEST 2023
 m2e.projectLocation=/home/dagarcos/git/DBCDS_S13_1/DBCDS_S13_1_Shared
 m2e.projectName=DBCDS_S13_1_Shared
 groupId=es.uv.garcosda.shared