Skip to content

Commit 1556aef

Browse files
committed
feat: remove CustomRule Field and move to UsedRule (#83)
1 parent 02b082f commit 1556aef

File tree

7 files changed

+47
-55
lines changed

7 files changed

+47
-55
lines changed

src/main/java/scanner/checklist/dto/CheckListDetailDto.java

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import scanner.checklist.entity.CustomRuleDetails;
99
import scanner.checklist.entity.UsedRule;
1010
import scanner.checklist.enums.SecurityType;
11+
import scanner.common.enums.Language;
1112

1213
@NoArgsConstructor(access = AccessLevel.PROTECTED)
1314
public class CheckListDetailDto {
@@ -51,6 +52,11 @@ public Detail(String ruleName, List<TagDto> tags, List<SecurityType> type, Strin
5152

5253
public Detail(UsedRule usedRule) {
5354
CustomRule rule = usedRule.getOriginRule();
55+
CustomRuleDetails details = rule.getRuleDetails()
56+
.stream()
57+
.filter(d -> d.getLanguage().equals(Language.ENGLISH))
58+
.findAny()
59+
.orElse(rule.getRuleDetails().get(0));
5460

5561
this.ruleName = usedRule.getRuleName();
5662
this.state = usedRule.getIsOn().toString();
@@ -60,12 +66,12 @@ public Detail(UsedRule usedRule) {
6066
this.tags = rule.getTagDto();
6167
this.type = null;
6268
this.level = rule.getLevel();
63-
this.description = rule.getDescription();
64-
this.explanation = rule.getExplanation();
65-
this.possibleImpact = rule.getPossibleImpact();
69+
this.description = details.getDescription();
70+
this.explanation = details.getExplanation();
71+
this.possibleImpact = details.getPossibleImpact();
6672
this.insecureExample = rule.getInsecureExample();
6773
this.secureExample = rule.getSecureExample();
68-
this.solution = new Solution(rule.getSol(), rule.getCode());
74+
this.solution = new Solution(details.getSol(), rule.getCode());
6975
this.isModifiable = rule.getIsModifiable();
7076
}
7177
}
@@ -97,26 +103,5 @@ public static Detail toDetailsDto(final UsedRule usedRule, final CustomRuleDetai
97103
.isModifiable(rule.getIsModifiable())
98104
.build();
99105
}
100-
101-
public static Detail toDto(final UsedRule usedRule) {
102-
CustomRule rule = usedRule.getOriginRule();
103-
return Detail.checklistDetailsBuilder()
104-
105-
.ruleName(usedRule.getRuleName())
106-
.state(usedRule.getIsOn().toString())
107-
.isModified(usedRule.getIsModified())
108-
.customDetail(usedRule.getCustomDetail())
109-
110-
.tags(rule.getTagDto())
111-
.level(rule.getLevel())
112-
.description(rule.getDescription())
113-
.explanation(rule.getExplanation())
114-
.possibleImpact(rule.getPossibleImpact())
115-
.insecureExample(rule.getInsecureExample())
116-
.secureExample(rule.getSecureExample())
117-
.solution(new Solution(rule.getSol(), rule.getCode()))
118-
.isModifiable(rule.getIsModifiable())
119-
.build();
120-
}
121106
}
122107

src/main/java/scanner/checklist/entity/CustomRule.java

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -52,24 +52,12 @@ public class CustomRule extends BaseEntity {
5252
@NotNull
5353
private Character isModifiable;
5454

55-
@Column(name = "DESCRIPTION")
56-
private String description;
57-
58-
@Column(name = "EXPLANATION")
59-
private String explanation;
60-
61-
@Column(name = "POSSIBLE_IMPACT")
62-
private String possibleImpact;
63-
6455
@Column(name = "INSECURE_EXAMPLE")
6556
private String insecureExample;
6657

6758
@Column(name = "SECURE_EXAMPLE")
6859
private String secureExample;
6960

70-
@Column(name = "SOLUTION")
71-
private String sol;
72-
7361
@Column(name = "CODE")
7462
private String code;
7563

@@ -98,21 +86,15 @@ public List<TagDto> getTagDto() {
9886
}
9987

10088
@Builder(builderClassName = "customRuleAddBuilder", builderMethodName = "customRuleAddBuilder")
101-
public CustomRule(String defaultRuleName, Provider provider, String ruleType,
102-
String level, Character isModifiable, String description, String explanation,
103-
String possibleImpact, String insecureExample, String secureExample, String sol, String code,
104-
String customDefault) {
89+
public CustomRule(String defaultRuleName, Provider provider, String ruleType, String level, Character isModifiable,
90+
String insecureExample, String secureExample, String code, String customDefault) {
10591

10692
this.defaultRuleName = defaultRuleName;
10793
this.provider = provider;
10894
this.ruleType = ruleType;
10995
this.level = level;
110-
this.description = description;
111-
this.explanation = explanation;
112-
this.possibleImpact = possibleImpact;
11396
this.insecureExample = insecureExample;
11497
this.secureExample = secureExample;
115-
this.sol = sol;
11698
this.code = code;
11799
this.isModifiable = isModifiable;
118100
this.customDefault = customDefault;
@@ -131,9 +113,11 @@ public CustomRule(String defaultRuleName, Provider provider, List<ComplianceKor>
131113
public void addComplianceKorsForTest(List<ComplianceKor> kors) {
132114
this.complianceKors = kors;
133115
}
116+
134117
public void addComplianceEngsForTest(List<ComplianceEng> engs) {
135118
this.complianceEngs = engs;
136119
}
120+
137121
public void addHistoryDetailsForTest(List<ScanHistoryDetail> details) {
138122
this.historyDetails = details;
139123
}

src/main/java/scanner/common/client/OAuthFeignClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@
1010
public interface OAuthFeignClient {
1111

1212
@PostMapping(value = "/login/oauth/access_token")
13-
OAuthDto.GithubTokenResponse requestGithubAccessToken(@RequestBody OAuthDto.GithubTokenRequest tokenRequest);
13+
String requestGithubAccessToken(@RequestBody OAuthDto.GithubTokenRequest tokenRequest);
1414
}

src/main/java/scanner/oauth/dto/OAuthDto.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import lombok.AllArgsConstructor;
88
import lombok.Getter;
99
import lombok.NoArgsConstructor;
10+
import scanner.security.config.Properties;
1011

1112
@NoArgsConstructor(access = AccessLevel.PROTECTED)
1213
public class OAuthDto {
@@ -25,12 +26,20 @@ public static class GithubTokenResponse {
2526
}
2627

2728
@Getter
28-
@AllArgsConstructor
2929
@NoArgsConstructor(access = AccessLevel.PROTECTED)
3030
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
3131
public static class GithubTokenRequest {
32+
private String clientId;
3233
private String clientSecret;
3334
private String code;
35+
private String redirectUri;
36+
37+
public GithubTokenRequest(Properties properties, String code) {
38+
this.clientId = properties.getGithubClientId();
39+
this.clientSecret = properties.getGithubClientSecret();
40+
this.redirectUri = properties.getGithubRedirectUri();
41+
this.code = code;
42+
}
3443
}
3544

3645
@Getter

src/main/java/scanner/oauth/middleware/OAuthRequestFacade.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import lombok.RequiredArgsConstructor;
66
import scanner.common.client.OAuthFeignClient;
77
import scanner.common.client.OAuthInfoFeignClient;
8+
import scanner.common.enums.ResponseCode;
9+
import scanner.common.exception.ApiAuthException;
810
import scanner.oauth.dto.OAuthDto;
911
import scanner.security.config.Properties;
1012
import scanner.security.dto.Token;
@@ -21,19 +23,28 @@ public class OAuthRequestFacade {
2123

2224
/**
2325
* Request Github Access Token by auth code.
24-
* @return access token in OAuthDto.GithubTokenResponse
26+
* @return access token in String
2527
*/
26-
public OAuthDto.GithubTokenResponse requestGithubOAuthToken(String code) {
27-
OAuthDto.GithubTokenRequest tokenRequest = new OAuthDto.GithubTokenRequest(properties.getGithubClientSecret(), code);
28-
return oauthFeignClient.requestGithubAccessToken(tokenRequest);
28+
public String requestGithubOAuthToken(String code) {
29+
OAuthDto.GithubTokenRequest tokenRequest = new OAuthDto.GithubTokenRequest(properties, code);
30+
String resultString = oauthFeignClient.requestGithubAccessToken(tokenRequest);
31+
32+
String[] arr = resultString.split("&");
33+
34+
for(String s : arr) {
35+
if(s.startsWith("access_token"))
36+
return s;
37+
}
38+
39+
throw new ApiAuthException(ResponseCode.INVALID_TOKEN);
2940
}
3041

3142
/**
3243
* Request Github User info by access token.
3344
* @return user detail in OAuthDto.GithubUserDetail
3445
*/
3546
public OAuthDto.GithubUserDetail requestGithubUserDetail(String accessToken) {
36-
return infoFeignClient.requestGithubUserDetail("Bearer " + accessToken);
47+
return infoFeignClient.requestGithubUserDetail("Bearer " + accessToken.split("=")[1]);
3748
}
3849

3950
/**

src/main/java/scanner/oauth/service/AuthService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,8 @@ public class AuthService {
3434
* @return user Token
3535
*/
3636
public Token getUserAccessToken(@NotNull String code) {
37-
OAuthDto.GithubTokenResponse tokenResponse = oauthRequestFacade.requestGithubOAuthToken(code);
38-
OAuthDto.GithubUserDetail userDetail = oauthRequestFacade.requestGithubUserDetail(
39-
tokenResponse.getAccessToken());
37+
String tokenResponse = oauthRequestFacade.requestGithubOAuthToken(code);
38+
OAuthDto.GithubUserDetail userDetail = oauthRequestFacade.requestGithubUserDetail(tokenResponse);
4039

4140
User user = getUserIfExist(userDetail);
4241

src/main/java/scanner/security/config/Properties.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,15 @@ public class Properties {
2525
@Getter
2626
private String githubClientSecret;
2727

28+
@Getter
29+
private String githubRedirectUri;
30+
2831
@PostConstruct
2932
public void jwtInit() {
3033
this.secret = environment.getProperty("JWT_SECRET");
3134
this.githubClientId = environment.getProperty("GITHUB_CLIENT_ID");
3235
this.githubClientSecret = environment.getProperty("GITHUB_CLIENT_SECRET");
36+
this.githubRedirectUri = environment.getProperty("GITHUB_CALLBACK");
3337
log.info("JWT_SECRET is " + this.secret);
3438
}
3539
}

0 commit comments

Comments
 (0)