Skip to content

Commit 4ae9869

Browse files
committed
#8 UI Separation client / system / scopes / user / dashboard
1 parent 061b161 commit 4ae9869

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

iam-api/src/main/java/org/uengine/iam/oauthtoken/OauthTokenServiceImpl.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ public String generateJWTToken(
110110
Map context = new HashMap();
111111
context.put("clientKey", oauthClient.getClientKey());
112112
context.put("type", accessToken.getType());
113-
context.put("scopes", accessToken.getScopes());
114113
context.put("refreshToken", accessToken.getRefreshToken());
115114

116115
if (type.equals("user")) {
@@ -120,13 +119,27 @@ public String generateJWTToken(
120119
//remove unused fields.
121120
userMap.remove("userPassword");
122121

123-
//remove secure metadata field.
122+
//encode secure metadata field.
124123
Map metaData = (Map) userMap.get("metaData");
125124
if (secureMetadataFields != null) {
126125
metaData = JwtUtils.encodeMetadata(metaData, secureMetadataFields, metadataEncoderSecret1, metadataEncoderSecret2);
127126
userMap.put("metaData", metaData);
128127
}
129128
context.put("user", userMap);
129+
130+
//Put scopes only user has.
131+
List<String> scopes = accessToken.getScopes();
132+
List<String> userScopes = (List<String>) oauthUser.getMetaData().get("scopes");
133+
List<String> finalScopes = new ArrayList<>();
134+
for (String scope : scopes) {
135+
if(userScopes.contains(scope)){
136+
finalScopes.add(scope);
137+
}
138+
}
139+
context.put("scopes", finalScopes);
140+
} else {
141+
//Put all scopes
142+
context.put("scopes", accessToken.getScopes());
130143
}
131144

132145
//클라이언트의 콘텍스트 필수 항목만 context 에 집어넣는다.

iam-sample-app/src/main/resources/application.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ clients:
8080
clientSecret: my-client-secret
8181

8282
# 토큰 발급시 요청할 수 있는 스코프 목록 (콤마 세퍼레이션)
83-
enable-scopes: cloud-server
83+
enable-scopes: cloud-server,bpm
8484

8585
# 유저 스코프 체크. 유저 metadata 의 scopes 를 검사한다.
8686
# true: 요청받은 스코프를 모두 가지고 있어야 한다.

0 commit comments

Comments
 (0)