Skip to content

머지하지 말것. #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@ repositories {
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}

tasks.named('test') {
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,12 @@
@RestController
@RequestMapping("/auth")
public class AuthorizationController {

private final RegisterMemberService registerMemberService;

public AuthorizationController(RegisterMemberService registerMemberService) {
this.registerMemberService = registerMemberService;
}


@PostMapping("/join")
public ResponseEntity<String> join(@RequestBody MemberJoinDto dto) {
try {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.nahwasa.springsecuritybasicsettingforspringboot3.controller;

import com.nahwasa.springsecuritybasicsettingforspringboot3.dto.MemberLoginDto;
import com.nahwasa.springsecuritybasicsettingforspringboot3.service.MemberService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/")
public class LoginController {
private final MemberService memberService;

public LoginController(MemberService memberService) {
this.memberService = memberService;
}

@PostMapping("/login-process")
public String login(MemberLoginDto dto) {
boolean isValidMember = memberService.isValidMember(dto.getUserid(), dto.getPw());
if (isValidMember)
return "dashboard";
return "login";
}

@PostMapping("/logout")
public String logout() {
return "login";
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package com.nahwasa.springsecuritybasicsettingforspringboot3.controller;

import com.nahwasa.springsecuritybasicsettingforspringboot3.config.AdminAuthorize;
import com.nahwasa.springsecuritybasicsettingforspringboot3.config.UserAuthorize;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
Expand All @@ -24,20 +20,16 @@ public String joinPage() {
}

@GetMapping("/dashboard")
public String dashboardPage(@AuthenticationPrincipal User user, Model model) {
model.addAttribute("loginId", user.getUsername());
model.addAttribute("loginRoles", user.getAuthorities());
public String dashboardPage(Model model) {
return "dashboard";
}

@GetMapping("/setting/admin")
@AdminAuthorize
public String adminSettingPage() {
return "admin_setting";
}

@GetMapping("/setting/user")
@UserAuthorize
public String userSettingPage() {
return "user_setting";
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.nahwasa.springsecuritybasicsettingforspringboot3.domain;

import jakarta.persistence.*;
import org.springframework.security.crypto.password.PasswordEncoder;

@Entity
public class Member {
Expand All @@ -25,8 +24,8 @@ private Member(Long id, String userid, String pw, String roleUser) {

protected Member() {}

public static Member createUser(String userId, String pw, PasswordEncoder passwordEncoder) {
return new Member(null, userId, passwordEncoder.encode(pw), "USER");
public static Member createUser(String userId, String pw) {
return new Member(null, userId, pw, "USER");
}

public Long getId() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.nahwasa.springsecuritybasicsettingforspringboot3.dto;

public class MemberLoginDto {

private String userid;
private String pw;

public String getUserid() {
return userid;
}

public void setUserid(String userid) {
this.userid = userid;
}

public String getPw() {
return pw;
}

public void setPw(String pw) {
this.pw = pw;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,12 @@ public MemberService(MemberRepository repository) {
public Optional<Member> findOne(String userId) {
return repository.findByUserid(userId);
}

public boolean isValidMember(String userId, String password) {
Optional<Member> member = findOne(userId);
if (member.isPresent()) {
return member.get().getPw().equals(password);
}
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,19 @@
import com.nahwasa.springsecuritybasicsettingforspringboot3.domain.Member;
import com.nahwasa.springsecuritybasicsettingforspringboot3.repository.MemberRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;

@Service
public class RegisterMemberService {
private final PasswordEncoder passwordEncoder;
private final MemberRepository repository;

@Autowired
public RegisterMemberService(PasswordEncoder passwordEncoder, MemberRepository repository) {
this.passwordEncoder = passwordEncoder;
public RegisterMemberService(MemberRepository repository) {
this.repository = repository;
}

public Long join(String userid, String pw) {
Member member = Member.createUser(userid, pw, passwordEncoder);
Member member = Member.createUser(userid, pw);
validateDuplicateMember(member);
repository.save(member);

Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/data.sql
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
insert into member(userid, pw, roles) values ('nahwasa', '$2a$12$jcKXsj4ZAIkGgZdnUQ6EcOduMlurEtX7Szjhr.kQp2iQXNucjZMI6', 'ADMIN');
insert into member(userid, pw, roles) values ('user', '$2a$12$jcKXsj4ZAIkGgZdnUQ6EcOduMlurEtX7Szjhr.kQp2iQXNucjZMI6', 'USER');
insert into member(userid, pw, roles) values ('nahwasa', '1234', 'ADMIN');
insert into member(userid, pw, roles) values ('user', '1234', 'USER');
18 changes: 13 additions & 5 deletions src/main/webapp/WEB-INF/views/dashboard.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,11 @@
<h3 class="form-signin-heading text-center mb-5">nahwasa.com</h3>

<h3 class="overview-normalize">접속 아이디</h3>
<p>
${loginId}
<p id='login_id'>
</p>
<hr/>
<h3 class="overview-normalize">역할</h3>
<p>
${loginRoles}
<p id='pw'>
</p>
<hr/>
<h3 class="overview-normalize">역할에 따른 페이지 이동 권한 확인</h3>
Expand All @@ -32,8 +30,18 @@
</p>
<hr/>
<form method="post" action="/logout">
<button class="btn btn-sm btn-danger btn-block" type="submit">로그아웃</button>
<button class="btn btn-sm btn-danger btn-block" type="submit" id="logout_btn">로그아웃</button>
</form>

<script>
const loginId = document.getElementById('login_id');
loginId.innerHTML = sessionStorage.getItem('userid');

const logoutBtn = document.getElementById('logout_btn');
logoutBtn.addEventListener('click', () => {
sessionStorage.setItem('userid', '');
});
</script>
</div>
</body>
</html>
10 changes: 9 additions & 1 deletion src/main/webapp/WEB-INF/views/login.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,20 @@
<label for="password" class="sr-only">비밀번호</label>
<input type="password" id="password" name="pw" class="form-control" placeholder="비밀번호" required="">
</p>
<button class="btn btn-lg btn-primary btn-block" type="submit">로그인</button>
<button class="btn btn-lg btn-primary btn-block" type="submit" id="login_btn">로그인</button>
</form>

<form class="form-signin" method="get" action="/view/join">
<button class="btn btn-lg btn-warning btn-block" type="submit">회원가입하기</button>
</form>

<script>
const loginBtn = document.getElementById('login_btn');

loginBtn.addEventListener('click', () => {
sessionStorage.setItem('userid', document.getElementById('username').value);
});
</script>
</div>
</body>
</html>