
애플리케이션에서 사용자의 권한을 구분하는 것은 중요한 보안 기능입니다. 특히, ADMIN과 USER와 같은 권한을 나누는 이유는, 각 사용자가 접근할 수 있는 리소스를 제한하려고 한다. 관리자는 모든 데이터에 접근할 수 있지만 일반 사용자는 제한된 기능만 사용해야 할 필요가 있습니다. 이때 Spring Security를 사용하여 사용자 인증 시 적절한 권한을 부여하고, 이를 세션에 저장하여 각 페이지에서 해당 권한에 맞는 행동을 제어할 수 있다. 세션에 권한을 저장하는 이유는 사용자가 로그인 후 매번 서버에 요청할 때마다 권한을 재확인할 필요 없이, 세션에 저장된 정보를 활용하여 빠르고 효율적으로 권한을 판단하고, 적절한 리소스만 접근하도록 하기 위함이다. 이번 글에서는 DB에서 저장된 권한 코드(aut..

https://ekeprl.tistory.com/40 Spring Security (5) : 비밀번호 암호화 저장기존 코드는 회원가입을 진행할 때 따로 비밀번호 암호화를 진행하지않았다.혹시 데이터가 유출이 된다 하더라고 데이터의 정확한 정보를 넘기지 않기위해 비밀번호 암호화는 필수적이다.따라ekeprl.tistory.com비밀번호를 암호화하여 저장을 완료했고,이번 포스팅은 로그인시 입력한 비밀번호와 비교하여 로그인하는 과정을 작성하겠다. AuthenticationProvider 작성 : https://ekeprl.tistory.com/31 Spring Security (2)(1)편에 이어서 2편을 작성하려한다.2편은 AuthenticationProvider / Success,Failuer Handle..

기존 코드는 회원가입을 진행할 때 따로 비밀번호 암호화를 진행하지않았다.혹시 데이터가 유출이 된다 하더라고 데이터의 정확한 정보를 넘기지 않기위해 비밀번호 암호화는 필수적이다.따라서 이번 포스팅은 회원가입 시 비밀번호를 암호화해서 저장하는것을 작성하려한다. 로그인창에서 회원가입을 누르고 회원가입 화면으로 진입한다.회원가입 기능 : https://ekeprl.tistory.com/26 회원가입(Join) 기능 추가 -2아이디 중복체크를 끝낸 후,아래 초록백 회원가입 버튼을 클릭하고 회원가입기능을 마무리 하려한다. 1)join.jsvar JoinJsFun = { initHtml : function () { join_duplicateBtn.addEventListener("click", function(){ ..
먼저 Session이란클라이언트별로 서버에 유지되는 저장공간이다. *작성자는 소스를 작성할때 사용자를 식별할때 주로 사용한다.* 이전 포스팅에서 게시판목록을 조회할 때Service단에서fun adminBoardSelectList(param : SearchModel) : JSONObject { val jsono = JSONObject() try { val listdata = mapper.adminBoardSelectList(param, session.getAttribute("userid").toString()) jsono["RESULT"] = "OK" jsono["LIST"] = listdata jsono["MESSAGE"] = "조회에 성공하였..
3편은 Provider에서 인증 성공 / 실패 판단을하고 그 후 처리를 어떻게할지 Custom한Success , Failuer Handler에 대해 작성하려한다. 1) SuccessHandler2편에서 작성한 Provider을보면if(user?.userpw.equals(userpw)) { val authorities = listOf(SimpleGrantedAuthority("ROLE_USER")) return UsernamePasswordAuthenticationToken(userid,userpw,authorities)}해당 ID의 PW값과 입력한PW값을 비교해 일치하면 UsernamePasswordAuthenticationToken을 반환하고, 인증이 성공한것으로 간주되어 SuccessHan..
Spring boot : 3.1Spring Security6Kotlin Spring security의 방식에 대해선 다루지않고, 어떻게 작성했는지를 다루도록 하려한다. 1. Build.gradle.ktsdependencies { //spring-secutiry (보안) implementation("org.springframework.boot:spring-boot-starter-security")}의존성 추가를해주고 2.SecurityConfig.kt - FilterChain@Bean@Throws(Exception::class)fun filterChain(http:HttpSecurity) : SecurityFilterChain{ return http.csrf { obj:..