728x90 반응형 SMALL Spring공부/4-스프링시큐리티10 프로젝트(2) AJax와 스프링 시큐리티 처리 태그를 이용하는 방식 외에 많이 사용되는 Ajax를 이용하는 경우 약간의 추가적인 설정이 필요하다. 해당 Ajax부분을 로그인한 사용자만이 해당 기능들을 사용할 수 있도록 수정해주어야 한다. 스프링 시큐리티가 적용되면 POST, PUT, PATCH, DELETE와 같은 방식으로 데이터를 전송하는 경우 추가적으로 X-CSRF-TOKEN와 같은 헤더 정보를 추가해서 CSRF토큰값을 전달하도록 수정해야한다. Ajax는 JS를 이용하기 때문에 브라우저에서는 CSRF토큰과 관련된 값을 변수로 선언하고, 전송 시 포함 시켜주는 방식으로 수정하자. 게시물등록 시 첨부파일의 처리 스프링 시큐리티가 적용된 후에는 게시물에 파일첨부가 정상적으로 동작하지 않는다. 게시물의 등록이 POST로 .. 2021. 10. 21. 프로젝트(1) 기존 프로젝트에 그동안 공부했던 스프링 시큐리티를 접목하는 작업을 진행하도록 하겠다. 그전에 해당 기능은 -로그인과 회원 가입 페이지의 작성 - 기존 화면과 컨트롤러에 시큐리티 관련 내용 추가 - Ajax부분의 변경 로그인 페이지 처리 기존의 로그인화면은 정말 끔찍하다.. 어쩌면 스프링에서 기본으로 주는화면급이었다. 똑같았다 그냥 그럼 조금 이쁘게 부트스트랩을 적용하고, 아까의 로그인의 화면의 태그라던가 id는 동일하게 설정한뒤 생성해보았다. Please Sign In Remember Me Login 폼태그가 붙고, 거기에 컨테이너 div가 붙고 해서 뭔가 복잡해 보이는데 화면으로보면 크게 달라진것은 없다. 귀찮다면 그전의 화면을 계속사용해도 문제는 없다. 하지만 JSTL이나 스프링 시큐리티의 태그를 사.. 2021. 10. 21. 자동 로그인 현재 웹페이지들은 자동 로그인이나 로그인 기억하기 라는 이름으로 한 번 로그인하면 읠정 시간 동안 다시 로그인을 하지 않아도 되는 기능을 가지고 있다. 스프링 시큐리티의 경우 로그인기억 기능을 메모리상에서나 처리하거나, 데이터베이스를 이용하는 형태로 약간의 설정만으로 구현이 가능하다. security-context.xml에는 태그를 이용해서 기능을 구현할 수 있다.! 해당 태그에는 아래와 같이 여러 속성값을 지정할 수 있다. key 쿠키에 사용되는 값을 암호화하기 위한(key)값 data-source-ref DataSource를 지정하고 테이블을 이용해서 기존 로그인 정보를 기록(옵션) remember-me-cookie 브라우저에 보관되는 쿠키의 이름을 지정한다. 기본값은 remember-me이다. re.. 2021. 10. 21. 스프링 시큐리티와 JSP JSP에서 로그인한 사용자 정보를 보여주기 /sampl/admin 과 같은 경로는 로그인한 사용자만이 접근할 수 있고, 만일 권한이 적당하지 않으면 볼수 없는 페이지이므로 로그인한 사용자가 접근 했을 때에는 해당 사용자의 여러 정보를 보여줄 필요가 있다. 스프링 시큐리티와 관련된 정보를 출력하거나 사용하려면 JSP상단에 스프링 시큐리티 관련 태그 라이브러리 사용을 선언하고, 태그와 principal이 라는 이름의 속성을 사용한다. 지금현재 있는 JSP파일에 해당 태그를 추가한다. 그리고 해당 사용자의 이름과 아이디, 권한들을 나타날 수 있도록 하기위해 각각의 태그들을 넣어주어 불러온 정보를 화면단에 나타나게 해줄 수 있다. /sample/admin page principal : MemberVO : 사용자.. 2021. 10. 19. 커스텀 UserDetailsService JDBC를 이용하는 방식을 DB를 처리해서 편리하게 사용할 수 있기는 하지만, 제한적인 내용만만을 이용한다는 단점이있다. 스프링 시큐리티에서 username이라고 부르는 사용자의 정보만을 이용하기 때문에 충분하지 실제 프로젝트에서 사용자 의 이름이나 이메일등의 자세한 정보를 이용할 경우에는 부족하다. 이런문제를 해결하기 위해서 직접 UserDeatilasService를 구현하는 방식을 이용한다. 흔히 커스텀 UserDetailsService를 구현하는데, 원하는 객체를 인증과 권한 체크에 활용 할 수 있다. 스프링 시큐리티의 UserDetailsService 인터페이스는 단 하나의 메서드만이 존재한다. loadUserByUsername()이라는 메서드의 반환 타입인 UserDetails 역시 인터페이스로.. 2021. 10. 19. JDBC를 이용하는 간편 인증/ 권한처리 현실적으로 JDBC를 이용하는 방식을 공부해보자 스프링 시큐리티에서는 사용자를 확인하는 인증과 권한 등을 부여하는 인가 과정으로 나누었다. 인증과 권한에 대한 처리는 크게 보면 Authenitacation Manager를 통해서 이루어진다. 이때, 인증이나 권한 정보를 제공하는 존재가 필요하고, 다시 이를 위해서 UserDetailsService라는 인터페이스를 구현한 존재를 활용한다. 유저 상세서비스는 스프링 시큐리티 API내에 이미 CahingUserDeatilsService, InmemoryIserDetailsmanager, jdbcDaoImpl, jdbcUserDetailManager, LdapUserDetailsManager, LdapUserDetailsService와 같은 구현 클래스들을 제공.. 2021. 10. 18. 로그인과 로그아웃처리(2) 커스템 로그인 페이지 앞서 언급했듯이 스프링 시큐리티에서 기본적으로 로그인페이지를 제공하긴한다. 현실적으로 화면 디자인등의 문제로 사용하기 불편하고 안예쁘다. 때문에 거의 대부분 경우 별도의 URI를 이용해서 로그인 페이지를 제작해서 사용한다. 이를 이용하는 방식은 접근 제한 페이지와 유사하게 직접 특정 URI를 지정할 수 있다. 보이는 바와같이 한줄을 수정 추가해주었다. 이제 로그인화면은 customLogin으로 이동하게 될것이다. login-page속성의 Uri는 get방식으로 접근하는 uri로 지정한다. 그리고 CommonController에 /customLogin에 해당하는 매서드를 추가해준다. @GetMapping("/customLogin") public void loginInput(String.. 2021. 10. 18. 로그인과 로그아웃 처리 스프링 시큐리티의 내부 구조는 상당히 복잡하지만, 실제 사용은 약간의 설정만으로도 처리가 가능하다. 앞에서 설계한 몇 개의 URI에 대한 접근 제한을 통해서 간단히 스프링 시큐리티의 적용 방법을 알아보자 접근 제한 설정 security-context.xml에 아래와 같이 접근 제한을 설정한다.; 특정한 URI에 접근할 때 인터셉터를 이용해서 접근을 제한하는 설정은 를 이용한다. pattern이라는 속성과 access라는 속성을 지정해야만 한다. pattern속성은 말 그대로 uri의 패턴을 의미하고, access의 경우는 권한을 체크한다. 이경우 /sample/member라는 uri는 role_member라는 권한이 있는 사용자만이 접근가능하게 된다. access의 속성값으로 사용되는 문자열은 1. 표현.. 2021. 10. 18. Spring Web Security 직접 프로젝트를 통해서 스프링 시큐리티의 동작을 먼저 살펴보자 스프링 시큐리티 스프링의 여러 하위 프로젝트 중에 하나이므로,https://spring.io/projects/spring-security Spring Security Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements spring.io 그리고 다양한 처리를 위.. 2021. 10. 18. Spring Web Security를 이용한 로그인처리 개요 거의 대부분 웹 기반의 프로젝트에서는 사용자의 권한이나 등급에 기반을 두는 로그인 체크를 이용한다. 웹에서는 기본적으로 쿠키를 이용하거나 세션을 이용하는 방식이 일반적이다. 스프링에서도 이를 활용할 수 있는 방법은 Interceptor등을 이용해서 처리 할 수 있다. 앞으로는 이러한 처리를 스프링 웹 시큐리티를 이용해서 처리하고자한다. 스프링 시큐리티를 이용하면 다음과 같은 작업을 간편히 처리할 수 있다. 로그인 처리와 CSRF토큰 처리 암호화 처리 자동로그인 JSP에서의 로그인 처리 Spring Web Security란? 스프링기반의 어플리 케이션의 보안을 담당하는 스프링 하위 프레임워크 스프링 시큐리티 기본 동작 방식은 서블릿의 여러 종류의 필터와 인터셉터를 이용해서 처리된다. 필터는 서블릿에 .. 2021. 10. 18. 이전 1 다음 728x90 반응형 LIST