강의

멘토링

로드맵

BEST
Programming

/

Back-end

Spring Security

From beginner to intermediate to advanced level, you will learn the basic concepts of Spring Security, API usage, and internal architecture, and by completing a practical project based on this, you will learn the core technologies related to Spring Security authentication and authorization.

(4.7) 229 reviews

3,770 learners

  • leaven
Java
Spring Boot
Spring Security

Reviews from Early Learners

What you will learn!

  • Complete mastery of Spring Security's basic API and related filters

  • Understanding the internal architecture of Spring Security and the roles and relationships between objects

  • Understanding Spring Security's authentication principles and internal workings

  • Understanding Spring Security's authorization principles and internal workings

  • Understanding how to integrate Spring Security and Spring MVC

  • Learn how to build a practical security system using Spring Security.

Learn and apply the most core technologies of Spring Security.

1. Introduction to the Core Spring Security Course

Spring Security provides a powerful API for implementing authentication and authorization control features.
You can implement a secure security system at a very low cost by using only the APIs provided by default.

This course is designed for users who have no idea how to use Spring Security at all, as well as those who have basic knowledge and experience but want to acquire more in-depth knowledge and deeply understand the core principles, internal structure, and operating methods of Spring Security and apply them .

This course focuses on the two core concepts of Spring Security: authentication and authorization.

[certification]
Spring Security supports various authentication methods, including Form, OAuth, JWT, and LDAP. This lecture will look at the Form authentication method.
Many web services implement security based on Form authentication, so it is an authentication method that you must fundamentally understand.

[impression]
Spring Security supports web layer authorization, service layer authorization, and domain layer authorization (ACL) access control features.
This course explores web-layer and service-layer authorization approaches.
In particular, in the fifth section, Practical Project Authorization, you will learn how to link with a database to enable dynamic permission control at a practical level.
If you learn the technology to link authorization control of the business layer as well as the web layer to the DB, it is expected to be very useful in actual operational services.

This course is divided into four major parts as follows:

  • Understanding Spring Security's basic API usage and related filters
  • Understanding Spring Security's internal architecture and how it works
  • Implementing Spring Security Authentication Processes Through Practical Projects
  • Implementing Spring Security Authorization Processes Through Practical Projects - Implementing an Authorization Control System Through DB Integration

2. Deep dive into the internal architecture and operating principles.

You can implement authentication and authorization functions using Spring Security's basic API, but as the system grows in size and security requirements increase, it becomes difficult to meet the security functions you want to implement using only the basic API provided.

In order to freely extend the functionality of Spring Security and customize it in various ways to suit your needs , you must deeply understand the internal architecture of Spring Security and the overall operating principles and corresponding flows of how authentication and authorization are processed .

Additionally, this is essential information to understand the exact causes and solutions to various security errors that may unexpectedly occur when building a security system in conjunction with Spring MVC.

By taking this course, you will be able to acquire this knowledge and apply it in practice.

3. Implementation of a DB linkage permission control system

The authorization methods provided by Spring Security can be divided into two types.

The first is a declarative method that directly specifies permission information in the configuration file for a client's request, and the second is a dynamic method that manages permission information based on a map by linking with an external storage .

The first method is that as the system grows in size, the types and configurations of permissions become more complex. Managing authorization policies individually through configuration files is very inefficient and costs a lot of money in terms of maintenance.

To address these issues, Spring Security supports managing authorization policies in external storage, such as memory or DB, rather than directly managing authorization policies in configuration files.

This course will look at both the declarative approach, which is specified in the configuration file, and the dynamic approach, which is linked to the database. In particular, we will look at URL-based authorization control in the web layer, as well as Method and Pointcut-based authorization control in the business layer .

This will teach you how to implement a real-time dynamic permission control system without starting the server even when operating the service .

4. Complete the practical project

After studying the first and second sections of this course, you will proceed to understand the functions of Spring Security by completing practical projects from the third to the sixth sections.

[user]
It consists of screens such as Dashboard, User, Manager, and Preferences, and authentication and authorization policies are set and tested for each menu.
Authentication preparation and processing is done through the member registration and login page.

[manager]
It provides screens such as user management, permission management, and resource management, and is accessible only to users with administrator rights.
It is configured to enable dynamic management of permissions and resources through real-time CRUD processing of each function.
By setting user permissions through DB linking, you can check the results immediately on the user screen.

In practical projects, you will work in conjunction with technologies such as Spring Boot, Spring MVC, and Spring JPA.
We recommend that you study this course in advance before taking it, and you can learn Spring integration technologies in parallel while taking the course.
The important thing is to understand the core features of Spring Security, so it won't be a big problem to gradually understand the above linking techniques.

5. Introduction of knowledge sharers

Jeongsuwon (leaven)

  • Current Java developer
  • Experience in various projects in SI/SM/solution/mobile/front & back-end
  • Performing roles as Architect/PM/PL
  • Github

Recommended for
these people

Who is this course right for?

  • For those who want to clearly understand the basic concepts of Spring Security

  • Those who want to freely extend and customize functions beyond the basic functions of Spring Security.

  • Anyone who wants to implement a practical authentication and authorization control system using Spring Security

  • It consists of content that can be used by anyone from beginners to intermediate to advanced users of Spring Security.

Need to know before starting?

  • Java

  • Spring Boot

  • Spring MVC

  • Spring JPA

Hello
This is

9,908

Learners

329

Reviews

1,210

Answers

4.9

Rating

5

Courses

다양한 프로젝트에서 웹/모바일/솔루션 제품 개발과 관련된 업무를 진행해 오고 있으며 분석/설계/개발 Role 을 맡아 오고 있습니다.

공공기간, 교육프로그램, 기업 프로젝트, 쇼핑몰 등의 웹 개발 및 솔루션 프로그램, 프레임워크, 오픈소스 연동 등의 아키텍처 설계 및 구조적 고도화 개선 등을 해 오고 있으며 개발, PL 등의 역할을 맡았습니다.

다양한 Open Source 와 여러 기술적인 경험들을 통해 웹의 전반적인 기술 흐름들을 익혔으며 개발 경험이 거듭될 수록 요구사항의 기능 구현에만 거치지 않고 좀 더 OOP 적인 구조의 소프트웨어로서 안전성과 성능을 고려한 아키텍처링과 튜닝의 기술들을 접목시켜 지속적으로 더 훌륭한 소프트웨어를 완성하기 위한 연구와 개발 실무를 책임감 있게 맡아 오고 있습니다.

 

Curriculum

All

64 lectures ∙ (20hr 58min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

229 reviews

4.7

229 reviews

  • 공룡님의 프로필 이미지
    공룡

    Reviews 4

    Average Rating 5.0

    5

    59% enrolled

    컴공 4학년 학생입니다. 스프링 시큐리티의 경우 구글에 검색해도 많은 자료가 나오고 spring.io에서 공식 reference를 참조하는 것도 좋은 방법입니다. 다만 시큐리티의 경우 흩어져 있는 정보를 재조합하는 과정이 매우 어렵습니다. 당장 아무것도 모른채로 구글에 검색을 해도 SecurityConfig를 '어떻게' 설정하는 지만 알려주고 그것을 '왜' 쓰는지는 자세히 안나와있기때문에 개인 프로젝트에 적용하면 정말 수많은 에러가 발생합니다. 제 주관적인 생각이지만, 시큐리티에 대해 아무것도 모르는 상황이라면 이 강의를 믿고 구매하는 것이 직접 검색해서 찾는 시간의 비용보다 훨씬 싼 것이라고 확신합니다. 만약 강의를 들으신다면 1~2과는 처음에 건너띄고 바로 실습으로 가는 것이 좋아보입니다. 실습을 진행하다가 왜 그런지 막히는 부분이 있으면 그때마다 해당 1~2장의 자세한 API 설명을 보면 이해도 더 잘되고 체화되는 속도도 빠르거든요. 예를 들어서 Authentication Flow를 이론만으로 들었을 때는 상당히 난해했으나 실습 3장에서 직접 제 프로젝트에 적용시키고 다시 들어보니 flow 차트가 한번에 눈에 들어왔습니다. PPT도 각 단계별로 눈에 잘 띄게 정리를 잘 해놓으셔서 평생 가지고 가도 될정도의 자료입니다. 저처럼 과거에 프로젝트에서 단순히 패스워드 값을 DB로 암호화없이 다이렉트로 보낸다거나.. 회원가입하는 모든 회원이 다른 사람이 쓴 게시글을 지울수 있다거나.. 이렇게 단순히 프로젝트를 땜빵용으로 제작해오신 분들에게 무조건 강추합니다.

    • 정수원
      Instructor

      정성어린 소중한 평을 남겨 주셔서 너무나 감사드립니다. 저 역시도 처음 스프링 시큐리티를 접했을 때를 기억해보면 지금 보다 더 참고할 만한 자료가 많지 않았던 때여서 스프링 시큐리티를 사용해서 보안 환경을 구축하는 것이 정말 힘들었습니다. 지금은 예전보다 훨씬 많은 자료들이 넘쳐나지만 진작 실무적으로 활용할만한 소스나 내용들을 찾아서 유의미한 형태의 기능으로 발전시키기가 쉽지 않는 것 또한 사실입니다. 말씀하신 것처럼 순서대로 강의를 들으시는 것도 좋지만 본인의 수준과 이해도에 맞게 강의를 들으시는 것도 좋은 방법이라 생각합니다. Faust 님의 열정과 의지라면 본 강의를 뛰어넘어 훨씬 더 많은 지식을 습득하실 수 있을 거라는 확신이 듭니다. 본 강의는 적지 않은 시간으로 제작되어 있으니 힘드시겠지만 끝까지 완주하셔서 본 강의가 목적하는 바를 다 이루어 가시길 바라겠습니다. 다시 한번 소중한 평가를 남겨 주셔서 진심으로 감사드립니다.

  • 소라연님의 프로필 이미지
    소라연

    Reviews 81

    Average Rating 5.0

    5

    97% enrolled

    강의에 빠져서 몇주째 헤어나오지 못하고 있습니다. 제공해주시는 자료도 엄청나고 질문답변 게시판에 답변주시는 내용만 봐도 지식공유자님의 내공이 느껴집니다. 완강 후 빠르게 한번 더 들어야 할 것 같습니다. 보석같은 강의를 발견하게 되어 기쁘네요. 다음 강의도 기대 하겠습니다. 좋은 강의 만들어 주셔서 감사합니다. ^___^

    • 정수원
      Instructor

      부족한 강의인데도 과찬을 해 주시니 더욱 어깨가 무거워집니다 소중한 평가 감사드립니다. 짧은 시간에 많은양의 강의를 들으신 걸 보니 배움과 학습의 열정이 대단하신 것 같습니다. 그만큼 더 큰 보상이 주어질 거라 믿어 의심치 않습니다. 끝까지 화이팅입니다.^^

  • 로시츠키님의 프로필 이미지
    로시츠키

    Reviews 1

    Average Rating 5.0

    5

    75% enrolled

    아직 api와 아키텍쳐 부분밖에 보지못했지만 너무 좋은 강좌입니다 jsp,스프링을 공부하면서 보안이나 권한을 좀더 자세히 다루고 싶어서 인터넷을 뒤져봐도 제가 워낙 초보수준인지라 ㅋㅋ 가장 좋은점은 강의가 너무 친절합니다 제공해주시는 자료에서도 정성이 느껴지고 저같은 초보도 이해할수 있을 정도로 계속해서 개념을 반복 설명해주십니다 처음에는 개념이 많아서 너무 어렵고 디버깅해주시는것도 이해가 안갔는데 필기 열심히 하고 따라 하기만 해도 이제 전체적인 흐름이 보이기 시작합니다 좋은 강의 만들어주셔서 감사합니다

    • 정수원
      Instructor

      부족한 강의인데도 도움이 되셨다니 정말 감사드립니다^^ 강의를 들으시면서 궁금하신 점 있으시면 언제든 질문해 주시면 최대한 해결책을 드릴 수 있도록 노력하겠습니다. 강의가 조금 길어서 완주하시기가 쉽지 않으시겠지만 끝까지 들으시면 노력한 만큼의 보상이 뒤따를 것이라 생각합니다. 좋은 평가 해 주셔서 다시 한번 감사드립니다.

  • naelina님의 프로필 이미지
    naelina

    Reviews 1

    Average Rating 5.0

    5

    91% enrolled

    국내외 모두 통틀어 정말 진심으로 보기 드문 스프링 시큐리티 강좌라 감히 말할 수 있습니다. 정수원 강사님의 강의 3개를 모두 듣고 있는데 각 강좌마다 강의내용, 자료 준비, 디버깅을 통한 내부구조 파헤치기, 전체 아키텍처 분석 등 정수원 강사님만의 강의 패턴 방식에 절로 감탄이 나옵니다. 와 시큐리티를 이렇게 파헤치다니요... 아마 시큐리티를 개발한 개발자분들도 이 강의를 보면 감탄할 거 같습니다. 아시겠지만 스프링 시큐리티는 러닝 커브가 커서 중급 개발자들도 내부 구조와 흐름들을 깊이 이해하는 것이 쉽지 않는데 이 강의는 입문자부터 중급 이상의 개발자들에게도 충분한 기술적 기반지식을 전달하고 있습니다. 적절한 이론과 적절한 실습을 잘 배합하여 어려운 시큐리티가 마법에 홀린 것 처럼 어렵게 느껴지지 않도록 아주 상세하고 쉽게 설명하고 있습니다. 특히 잘 준비된 PPT자료의 도식과 다이어그램을 통해 스프링 시큐리티의 구조와 흐름을 자세히 설명하고 이를 코드로서 디버깅하며 증명하는 부분은 이 강의의 압권이며 강사님의 노하우인것 같습니다. 저도 이런 진행방식을 눈여겨 보면서 하나씩 배우고 있습니다. 이 강의를 듣기 전에는 시큐리티를 따라하는 방법을 아는 수준이었지만 이 강의를 듣고 난 이후는 API, 필터 구조, 인증/인가 내부 흐름, 동적 인가 제어 방법 등 시큐리티의 기본기능 뿐 아니라 상황에 따라 자유롭게 기능을 확장하고 커스트마이징 할 수 있는 활용능력을 갖출 수 있게 되었다는데 실로 엄청난 수준의 강의라고 평가하고 싶습니다. 인퍼런에 있는 강좌들 중에서도 손에 꼽아도 될 정도의 퀄리티와 정보를 제공해 주고 있다고 생각합니다. 사실 시큐리티 강의는 강의하고 싶다고 아무나 강의할 수 있는 기술이 아니기 때문에 이 강의가 더욱 가치가 있는 것 같습니다. 만약 저 혼자서 이 정도의 지식을 독학으로 섭렵할려고 했다면 얼마나 힘들고 어려웠을지 다 듣고 나니 더욱 깨닫게 됩니다. 구글에서 시큐리티를 검색하면 강사님의 강의 내용이 많이 검색되는 것을 보면 진입장벽이 높았던 시큐리티 지식을 많은 개발자들에게 전파하게 되어 진입장벽을 낮추는 역할을 해 주셔서 정말 감사드립니다. 강의 중에 설명내용과 제공해주는 깃헙 소스와 부분적으로 동기화 되지 못한 애로사항이 있었으나 다행히 강사님께서 강의와 매핑되는 소스의 브랜치명을 엑셀로 잘 정리해 주셔서 따라가는데 한결 수월했으며 강의내용과 실제 실습이 차이나는 일부분이 있었으나 전반적인 내용을 이해하는데는 별 어려움이 없었습니다. 그래도 이러한 작은 부분도 다음 강의때는 더 꼼꼼하게 살펴 주셨으면 좋겠습니다. 이제 정수원 강사님의 다음 강의가 기다려 지고 기대됩니다 선배님 같은 개발자분들의 지식 공유를 통해 우리 후배 개발자들은 최소한의 시행착오를 겪게 됩니다. 앞으로도 강사님의 지식공유 활동을 진심으로 응원하겠습니다. 감사합니다.

    • 정수원
      Instructor

      너무 좋은 평가 해 주셔서 감사드립니다 수강생분들 입장에서 많이 고민하고 연구해서 나온 강의지만 여러가지로 부족한 부분이 많습니다 항상 겸허한 맘으로 준비하고 소통하며 함께 성장하는 강의가 되도록 노력하겠습니다 naelina 님의 성장을 저도 응원합니다 감사드립니다

  • 이한솔님의 프로필 이미지
    이한솔

    Reviews 14

    Average Rating 4.7

    4

    100% enrolled

    ppt도 분량이 엄청나고 강의량도 엄청납니다. API를 하나하나 메서드단위로 뜯어서 설명해주시는데, 단순히 사용법을 익히는게아니라 스프링 시큐리티가 무엇이고 어떻게 돌아가고 왜 이렇게하는지까지 파악하는데 많은 도움이 된 강의입니다. Git에가서 소스를 받아볼수도 있습니다. 아쉬운점은 강의 스텝별로 코드작성을 따라하고싶어도, git은 완성본만있고 강의에서는 해당 강의에서 구현하는 기능들을 다 상세히보여주거나 하는게 아니고 Git도 강의내용과 다르게 좀 더 리팩토링 및 최신화 되있는 코드들이 꽤 있어서 헷갈리거나 알아서 적당히 맞춰야 하는게 생각보다 피곤합니다. 그런부분들을 제외하면 만족하고 2회차로 한 번 더 강의 들으며 숙련도를 높힐 예정입니다.

    • 정수원
      Instructor

      네 감사합니다. 강의시간이나 자료들을 제작하고 구성할 때 처음 계획했던 것보다 거의 두배로 늘어났습니다. 양이 많다고 무조건 좋은 건 아니겠지만 이 강의를 통해서 전달하고자 한 내용들을 담고자 노력하다 보니 강의시간이나 구성내용들이 계속 추가되었습니다. 단순히 API 사용법을 익히는 것을 뛰어넘어 원리를 이해하고 응용력을 키울 수 있는 방법들을 제시하고자 했습니다. 되도록 학습자들이 강의를 보면서 실제 코딩을 따라 하면서 학습하도록 진행하였는데 각 단원마다 소스를 구분해서 제공하지 못한 점이 저도 아쉽네요 다음 강의를 제작하게 되면 꼭 참고해서 반영하도록 하겠습니다. 긴 시간동안 힘든 과정을 완주하시느라 수고 많으셨고 아무쪼록 이 강의가 조금이나마 이한솔 님의 현장과 실무에 도움이 될 수 있기를 저도 응원하도록 하겠습니다. 도움되는 평 남겨주셔서 정말 감사합니다

Access is restricted to non-public courses.
Private Course

leaven's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!