Skip to content

Commit 5ab767e

Browse files
committed
default
1 parent b837a2f commit 5ab767e

24 files changed

+150
-67
lines changed

build.gradle

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
plugins {
2-
id 'org.springframework.boot' version '2.7.1'
3-
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
2+
id 'org.springframework.boot' version '3.3.0'
3+
id 'io.spring.dependency-management' version '1.1.5'
44
id 'java'
55
}
66

7-
group = 'nextstep'
7+
group = 'com.example'
88
version = '0.0.1-SNAPSHOT'
9-
sourceCompatibility = '11'
9+
sourceCompatibility = '17'
1010

1111
repositories {
1212
mavenCentral()
1313
}
1414

1515
dependencies {
1616
implementation 'org.springframework.boot:spring-boot-starter-web'
17-
testImplementation 'org.springframework.boot:spring-boot-starter-test'
17+
testImplementation('org.springframework.boot:spring-boot-starter-test')
1818
}
1919

20-
tasks.named('test') {
20+
test {
2121
useJUnitPlatform()
22-
}
22+
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
46
zipStoreBase=GRADLE_USER_HOME
5-
zipStorePath=wrapper/dists
7+
zipStorePath=wrapper/dists

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
rootProject.name = 'spring-security-authorization'
1+
rootProject.name = 'spring-security'

src/main/java/nextstep/app/SecurityConfig.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import nextstep.security.authentication.AuthenticationException;
66
import nextstep.security.authentication.BasicAuthenticationFilter;
77
import nextstep.security.authentication.UsernamePasswordAuthenticationFilter;
8+
import nextstep.security.authorization.CheckAuthenticationFilter;
89
import nextstep.security.config.DefaultSecurityFilterChain;
910
import nextstep.security.config.DelegatingFilterProxy;
1011
import nextstep.security.config.FilterChainProxy;
@@ -16,6 +17,7 @@
1617
import org.springframework.context.annotation.Configuration;
1718

1819
import java.util.List;
20+
import java.util.Set;
1921

2022
@Configuration
2123
public class SecurityConfig {
@@ -42,7 +44,8 @@ public SecurityFilterChain securityFilterChain() {
4244
List.of(
4345
new SecurityContextHolderFilter(),
4446
new UsernamePasswordAuthenticationFilter(userDetailsService()),
45-
new BasicAuthenticationFilter(userDetailsService())
47+
new BasicAuthenticationFilter(userDetailsService()),
48+
new CheckAuthenticationFilter()
4649
)
4750
);
4851
}
@@ -63,6 +66,11 @@ public String getUsername() {
6366
public String getPassword() {
6467
return member.getPassword();
6568
}
69+
70+
@Override
71+
public Set<String> getAuthorities() {
72+
return member.getRoles();
73+
}
6674
};
6775
};
6876
}

src/main/java/nextstep/app/domain/Member.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,8 @@ public String getImageUrl() {
3636
public Set<String> getRoles() {
3737
return roles;
3838
}
39+
40+
public boolean matchPassword(String password) {
41+
return this.password.equals(password);
42+
}
3943
}

src/main/java/nextstep/app/infrastructure/InmemoryMemberRepository.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,8 @@
99

1010
@Repository
1111
public class InmemoryMemberRepository implements MemberRepository {
12-
public static final Member ADMIN_MEMBER = new Member("[email protected]", "password", "a", "", Set.of("ADMIN"));
13-
public static final Member USER_MEMBER = new Member("[email protected]", "password", "b", "", Collections.emptySet());
1412
private static final Map<String, Member> members = new HashMap<>();
1513

16-
static {
17-
members.put(ADMIN_MEMBER.getEmail(), ADMIN_MEMBER);
18-
members.put(USER_MEMBER.getEmail(), USER_MEMBER);
19-
}
20-
2114
@Override
2215
public Optional<Member> findByEmail(String email) {
2316
return Optional.ofNullable(members.get(email));

src/main/java/nextstep/app/ui/MemberController.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33
import nextstep.app.domain.Member;
44
import nextstep.app.domain.MemberRepository;
5-
import nextstep.security.authentication.AuthenticationException;
6-
import org.springframework.http.HttpStatus;
75
import org.springframework.http.ResponseEntity;
8-
import org.springframework.web.bind.annotation.ExceptionHandler;
96
import org.springframework.web.bind.annotation.GetMapping;
107
import org.springframework.web.bind.annotation.RestController;
118

@@ -25,9 +22,4 @@ public ResponseEntity<List<Member>> list() {
2522
List<Member> members = memberRepository.findAll();
2623
return ResponseEntity.ok(members);
2724
}
28-
29-
@ExceptionHandler(AuthenticationException.class)
30-
public ResponseEntity<Void> handleAuthenticationException() {
31-
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
32-
}
3325
}

src/main/java/nextstep/security/authentication/Authentication.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package nextstep.security.authentication;
22

3+
import java.util.Set;
4+
35
public interface Authentication {
46

7+
Set<String> getAuthorities();
8+
59
Object getCredentials();
610

711
Object getPrincipal();

src/main/java/nextstep/security/authentication/AuthenticationException.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package nextstep.security.authentication;
2+
import org.springframework.http.HttpStatus;
3+
import org.springframework.web.bind.annotation.ResponseStatus;
24

5+
@ResponseStatus(code = HttpStatus.UNAUTHORIZED)
36
public class AuthenticationException extends RuntimeException {
7+
48
public AuthenticationException() {
59
super("인증에 실패하였습니다.");
610
}

src/main/java/nextstep/security/authentication/BasicAuthenticationFilter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package nextstep.security.authentication;
22

3+
import jakarta.servlet.FilterChain;
4+
import jakarta.servlet.http.HttpServletRequest;
5+
import jakarta.servlet.http.HttpServletResponse;
36
import nextstep.security.context.SecurityContext;
47
import nextstep.security.context.SecurityContextHolder;
58
import nextstep.security.userdetails.UserDetailsService;
69
import org.springframework.http.HttpHeaders;
710
import org.springframework.util.StringUtils;
811
import org.springframework.web.filter.OncePerRequestFilter;
912

10-
import javax.servlet.FilterChain;
11-
import javax.servlet.http.HttpServletRequest;
12-
import javax.servlet.http.HttpServletResponse;
1313
import java.nio.charset.StandardCharsets;
1414
import java.util.Base64;
1515
import java.util.List;

0 commit comments

Comments
 (0)