Skip to content

Commit 4c7d3c3

Browse files
authored
Merge pull request #216 from dnd-side-project/dev
feat(Login): ๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ ์ถ”๊ฐ€
2 parents 1dbe241 + a28fdde commit 4c7d3c3

File tree

3 files changed

+17
-19
lines changed

3 files changed

+17
-19
lines changed

โ€Žmain-server/src/main/java/com/example/demo/domain/user/repository/UsersRepository.javaโ€Ž

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
package com.example.demo.domain.user.repository;
22

33
import com.example.demo.domain.user.entity.Users;
4-
import java.util.List;
54
import java.util.Optional;
65

76
import org.springframework.data.jpa.repository.JpaRepository;
8-
import org.springframework.data.jpa.repository.Query;
97

108
public interface UsersRepository extends JpaRepository<Users, String>, UserRepositoryCustom{
119

12-
@Query("SELECT u.id FROM Users u")
13-
List<String> findAllUserIds();
14-
1510
Optional<Users> findUsersByShareCode(String shareCode);
1611

1712
boolean existsByUsername(String nickname);

โ€Žmain-server/src/main/java/com/example/demo/global/kakao/controller/LoginController.javaโ€Ž

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.example.demo.global.kakao.controller;
22

3+
import com.example.common.error.code.UserErrorCode;
4+
import com.example.common.error.exception.UserException;
35
import com.example.demo.domain.user.entity.Users;
46
import com.example.demo.domain.user.repository.UsersRepository;
57
import com.example.demo.domain.user.service.NicknameGenerator;
@@ -8,6 +10,7 @@
810
import com.example.demo.global.kakao.dto.KakaoLoginRequest;
911
import com.example.demo.global.kakao.dto.KakaoLoginResponse;
1012
import com.example.demo.global.kakao.service.AuthService;
13+
import com.example.demo.global.security.filter.CustomUserDetails;
1114
import io.swagger.v3.oas.annotations.Operation;
1215
import io.swagger.v3.oas.annotations.media.Content;
1316
import io.swagger.v3.oas.annotations.media.Schema;
@@ -16,6 +19,8 @@
1619
import jakarta.validation.Valid;
1720
import lombok.RequiredArgsConstructor;
1821
import org.springframework.http.ResponseEntity;
22+
import org.springframework.security.access.prepost.PreAuthorize;
23+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
1924
import org.springframework.web.bind.annotation.*;
2025

2126
@RestController
@@ -43,18 +48,16 @@ public ResponseEntity<KakaoLoginResponse> kakaoLogin(
4348
return ResponseEntity.ok().body(out);
4449
}
4550

46-
@Operation(summary = "์Šˆํผ ๋กœ๊ทธ์ธ (์ž„์‹œ ๊ฐœ๋ฐœ์šฉ)", description = "์Šˆํผ ๊ณ„์ •์šฉ Access ํ† ํฐ ๋ฐœ๊ธ‰ (test, test2, test3...)")
51+
@Operation(summary = "๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ ", description = "๊ด€๋ฆฌ์ž ๊ณ„์ •์šฉ Access ํ† ํฐ ๋ฐœ๊ธ‰")
4752
@ApiResponse(responseCode = "200", description = "์Šˆํผ ํ† ํฐ ๋ฐœ๊ธ‰ ์„ฑ๊ณต")
48-
@GetMapping("/auth/super")
49-
public ResponseEntity<String> superLogin() {
50-
String nickname = nicknameGenerator.generateUniqueNickname();
51-
Users user = new Users();
52-
user.setUsername(nickname);
53-
user.setRole(JwtRoleType.SUPER);
54-
user.setProfileUrl("NULL");
55-
Users savedUser = usersRepository.save(user);
56-
String superToken = jwtAccessIssuer.issueSuperToken(savedUser.getId());
53+
@PreAuthorize("hasRole('SUPER')")
54+
@GetMapping("/auth/admin")
55+
public ResponseEntity<String> adminLogin() {
56+
57+
Users adminUser = usersRepository.findById("ADMIN")
58+
.orElseThrow(()-> new UserException("๊ด€๋ฆฌ์ž ๊ณ„์ •์ด ์—†์Šต๋‹ˆ๋‹ค", UserErrorCode.USER_NOT_FOUND));
5759

60+
String superToken = jwtAccessIssuer.issueSuperToken(adminUser.getId());
5861
return ResponseEntity.ok().body(superToken);
5962
}
6063

@@ -68,7 +71,7 @@ public ResponseEntity<String> anonymousLogin() {
6871
user.setRole(JwtRoleType.ANONYMOUS); //
6972
user.setProfileUrl("NULL");
7073
Users savedUser = usersRepository.save(user);
71-
String anonymousToken = jwtAccessIssuer.issueSuperToken(savedUser.getId());
74+
String anonymousToken = jwtAccessIssuer.issueAnonymousToken(savedUser.getId());
7275

7376
return ResponseEntity.ok().body(anonymousToken);
7477
}

โ€Žmain-server/src/main/java/com/example/demo/global/security/config/SecurityConfig.javaโ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import org.springframework.context.annotation.Configuration;
1111
import org.springframework.http.HttpMethod;
1212
import org.springframework.security.config.Customizer;
13+
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
1314
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
1415
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
1516
import org.springframework.security.config.http.SessionCreationPolicy;
1617
import org.springframework.security.web.SecurityFilterChain;
1718
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
1819

1920
@Configuration
21+
@EnableMethodSecurity
2022
@RequiredArgsConstructor
2123
public class SecurityConfig {
2224

@@ -43,6 +45,7 @@ SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
4345
"/chat/health",
4446
"/api/health",
4547
"/api/playlist/songs",
48+
"/main/playlist/search/popular",
4649

4750
// Swagger ๊ด€๋ จ ๊ฒฝ๋กœ
4851
"/main/swagger-ui/**",
@@ -57,13 +60,10 @@ SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
5760
).permitAll()
5861
.requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
5962

60-
// ๋งˆ์ดํŽ˜์ด์ง€๋Š” user/super ๊ถŒํ•œ๋งŒ ํ—ˆ์šฉ
6163
.requestMatchers("/main/mypage/**").hasAnyAuthority("ROLE_USER", "ROLE_SUPER", "ROLE_ANONYMOUS")
6264

63-
// ๋กœ๊ทธ์•„์›ƒ์€ ์ธ์ฆ๋งŒ ํ•„์š”
6465
.requestMatchers("/auth/logout").authenticated()
6566

66-
// ๊ทธ ์™ธ ๋ชจ๋“  ์š”์ฒญ์€ ์ธ์ฆ๋งŒ ํ•„์š”
6767
.anyRequest().authenticated()
6868
)
6969
.exceptionHandling(ex -> {

0 commit comments

Comments
ย (0)