Skip to content

Commit 03e0331

Browse files
bogdan-savaplanetf1
authored andcommitted
fix cors configuration
Signed-off-by: Bogdan Sava <[email protected]> Signed-off-by: Nigel Jones <[email protected]>
1 parent 8214787 commit 03e0331

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

open-metadata-implementation/user-interfaces/ui-chassis/ui-chassis-spring/src/main/java/org/odpi/openmetadata/userinterface/uichassis/springboot/auth/RoleService.java

+2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44

55
import org.odpi.openmetadata.userinterface.uichassis.springboot.service.ComponentService;
66
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.stereotype.Service;
78

89
import java.util.Collection;
910
import java.util.Set;
1011
import java.util.stream.Collectors;
1112

13+
@Service
1214
public class RoleService {
1315

1416
@Autowired

open-metadata-implementation/user-interfaces/ui-chassis/ui-chassis-spring/src/main/java/org/odpi/openmetadata/userinterface/uichassis/springboot/auth/SecurityConfig.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ public WebMvcConfigurer corsConfigurer() {
8383
return new WebMvcConfigurer() {
8484
@Override
8585
public void addCorsMappings( CorsRegistry registry ) {
86-
registry.addMapping("/**").allowedOrigins(allowedOrigins.toArray(new String[]{}));
86+
registry.addMapping("/**")
87+
.allowedOrigins(allowedOrigins.toArray(new String[]{}))
88+
.allowedMethods("GET","POST","PUT","DELETE")
89+
.allowedHeaders("Authorization","Content-type");
8790
}
8891
};
8992
}

open-metadata-implementation/user-interfaces/ui-chassis/ui-chassis-spring/src/main/java/org/odpi/openmetadata/userinterface/uichassis/springboot/auth/service/TokenService.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,24 @@
22
/* Copyright Contributors to the ODPi Egeria project. */
33
package org.odpi.openmetadata.userinterface.uichassis.springboot.auth.service;
44

5+
import org.odpi.openmetadata.userinterface.uichassis.springboot.auth.RoleService;
6+
import org.springframework.beans.factory.annotation.Autowired;
57
import org.springframework.security.core.Authentication;
68
import org.springframework.security.core.GrantedAuthority;
79
import org.springframework.security.oauth2.jwt.*;
810
import org.springframework.stereotype.Service;
911

1012
import java.time.Instant;
1113
import java.time.temporal.ChronoUnit;
14+
import java.util.Collection;
15+
import java.util.List;
1216
import java.util.stream.Collectors;
1317

1418
@Service
1519
public class TokenService {
1620

21+
@Autowired
22+
RoleService roleService;
1723
private final JwtEncoder encoder;
1824

1925
public TokenService(JwtEncoder encoder) {
@@ -22,14 +28,16 @@ public TokenService(JwtEncoder encoder) {
2228

2329
public String generateToken(Authentication authentication) {
2430
Instant now = Instant.now();
25-
String scope = authentication.getAuthorities().stream()
31+
List<String> authotities = authentication.getAuthorities().stream()
2632
.map(GrantedAuthority::getAuthority)
27-
.collect(Collectors.joining(" "));
33+
.collect(Collectors.toList());
34+
Collection<String> scope = roleService.extractUserAppRoles(authotities);
2835
JwtClaimsSet claims = JwtClaimsSet.builder()
2936
.issuer("self")
3037
.issuedAt(now)
3138
.expiresAt(now.plus(1, ChronoUnit.HOURS))
3239
.subject(authentication.getName())
40+
.claim("visibleComponents", roleService.getVisibleComponents(scope))
3341
.claim("scope", scope)
3442
.build();
3543
return this.encoder.encode(JwtEncoderParameters.from(claims)).getTokenValue();

open-metadata-implementation/user-interfaces/ui-chassis/ui-chassis-spring/src/main/resources/application.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ authentication.mode=token
8787
# Below is the default configuration for the two COCO_PHARMA roles we use for demo:
8888

8989
role.visibleComponents.COCO_PHARMA_USER=about,asset-catalog,asset-details,asset-details-print,asset-lineage,asset-lineage-print,end-to-end,ultimate-source,ultimate-destination,vertical-lineage,glossary,repository-explorer
90-
role.visibleComponents.COCO_PHARMA_ADMIN=about,type-explorer
90+
role.visibleComponents.COCO_PHARMA_ADMIN=*
9191

9292
# omas server connection details
9393
omas.server.name=cocoMDS1

0 commit comments

Comments
 (0)