README_ko.md
简体中文 | 繁體中文 | English | 日本語 | 한국어 | Русский
<p align="center"> </p> <h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">Sa-Token v1.46.0</h1> <h4 align="center">✨ 오픈 소스, 무료, 원스톱 Java 권한 인증 프레임워크로 인증을 간단하고 우아하게 만듭니다! </h4> <p align="center"> <a href="https://gitee.com/dromara/sa-token/stargazers"></a> <a href="https://gitee.com/dromara/sa-token/members"></a> <a href="https://atomgit.com/dromara/sa-token/stargazers"></a> <a href="https://github.com/dromara/sa-token/stargazers"></a> <a href="https://github.com/dromara/sa-token/network/members"></a> <!-- <a href="https://github.com/dromara/sa-token/watchers"></a> --> <!-- <a href="https://github.com/dromara/sa-token/issues"></a> --> <a href="https://github.com/dromara/sa-token/blob/master/LICENSE"></a> </p> <!-- <p align="center"> 학습 및 테스트를 위해 마스터 브랜치를 당겨주세요. dev는 개발 브랜치에 있습니다(루트 디렉터리에서 `git checkout master` 실행)</p> --> <p align="center"> <a href="https://sa-token.com?way=readme" target="_blank">온라인 문서: https://sa-token.com</a> | <a href="https://sa-token.com/doc.html#/more/demand-commit" target="_blank">요구 사항 제출</a> </p>2020년 초를 되돌아보면 Sa-Token의 첫 번째 코드 라인을 제출했을 때 당시 시장에 출시된 Java에는 간단하고 사용하기 쉬운 인증 프레임워크뿐 아니라 명확하고 일관된 권한 아키텍처 설계 아이디어가 부족했습니다.
따라서 지난 몇 년 동안 저는 Sa-Token 문서를 작성하는 데 많은 시간을 투자했습니다. 가장 명확하고 간결하며 이해하기 쉬운 표현을 얻기 위해 거의 모든 장, 모든 문장, 모든 단어가 반복적으로 수정되고 세밀하게 다듬어졌습니다. 설명서를 주의 깊게 읽으면 Sa-Token 프레임워크 자체뿐만 아니라 대부분의 시나리오에서 권한 설계에 대한 모범 사례도 배울 수 있습니다.
Sa-Token은 현재 로그인 인증, 권한 인증, Single Sign-On, OAuth2.0 및 마이크로서비스 인증의 5가지 핵심 모듈이 있는 경량 Java 권한 인증 프레임워크입니다.
아직도 다음 기능을 사용하고 계시나요? 그만 ⚠️ Sa-Token을 오게 해주세요!
SpringBoot 프로젝트에서 Sa-Token을 사용하려면 pom.xml에 종속성을 도입하기만 하면 됩니다.
<!-- Sa-Token 권한 인증, 온라인 문서: https://sa-token.com -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.46.0</version>
</dependency>
SpringBoot2 및 Sa-Token을 지원하는 것 외에도 SpringBoot3/4, Solon 및 JFinal과 같은 일반적인 웹 프레임워크에 대한 통합 패키지도 제공하므로 즉시 사용할 수 있습니다.
<details> <summary><b>간단한 디스플레이 예:</b> (확장/축소하려면 클릭)</summary>Sa-Token은 간단하고 우아한 방식으로 시스템의 권한 인증 부분을 완성하는 것을 목표로 합니다. 로그인 인증을 예로 들면 다음만 필요합니다.
// 세션 로그인, 매개변수는 로그인하는 사람의 계정 ID로 채워집니다.
StpUtil.login(10001);
인터페이스를 구현하거나 구성 파일을 만들 필요가 없습니다. 세션 로그인 인증을 완료하려면 이 정적 코드만 호출하면 됩니다.
인터페이스에 액세스하기 전에 로그인이 필요한 경우 다음 코드만 호출하면 됩니다.
// 현재 클라이언트가 로그인되어 있는지 확인하십시오. 로그인되어 있지 않으면 `NotLoginException` 예외가 발생합니다.
StpUtil.checkLogin();
Sa-Token에서는 대부분의 기능을 한 줄의 코드로 해결할 수 있습니다.
사람들을 오프라인으로 몰아내기:
// 계정 ID 10077로 오프라인에서 세션 시작
StpUtil.kickout(10077);
권한 인증:
// 주석 인증: `user:add` 권한이 있는 세션만 메서드에 들어갈 수 있습니다.
@SaCheckPermission("user:add")
public String insert(SysUser user) {
// ...
return "用户增加";
}
경로 차단 인증:
// 경로에 따라 모듈을 나누고, 모듈마다 인증이 다릅니다.
registry.addInterceptor(new SaInterceptor(handler -> {
SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
SaRouter.match("/goods/**", r -> StpUtil.checkPermission("goods"));
SaRouter.match("/orders/**", r -> StpUtil.checkPermission("orders"));
SaRouter.match("/notice/**", r -> StpUtil.checkPermission("notice"));
// 더 많은 모듈...
})).addPathPatterns("/**");
이전에 Shiro 또는 SpringSecurity를 사용한 적이 있다면 Sa-Token으로 전환한 후 질적 도약을 경험하게 될 것입니다.
<!-- Shiro 및 SpringSecurity와 같은 프레임워크에 싫증이 나면 Sa-Token의 API 디자인이 이러한 기존 프레임워크와 비교하여 얼마나 단순하고 우아한지 이해하게 될 것입니다! --> </details> <details> <summary><b>핵심 모듈 개요:</b> (확장/축소하려면 클릭)</summary>Sa-Token SSO는 同域、跨域、共享Redis、跨Redis、前后端一体、前后端分离、纯 js、vue2、vue3、java 项目、非 java 项目과 같은 아키텍처에서 SSO 인증 요구 사항을 해결할 수 있는 세 가지 모드로 구분됩니다.
| 시스템 아키텍처 | 채택 패턴 | 소개 | 문서 링크 |
|---|---|---|---|
| Redis와 동일한 도메인의 프런트엔드 + 동일한 도메인의 백엔드 | 모드 1 | 공유 쿠키 동기화 세션 | 문서, 예제 |
| 프런트 엔드의 다른 도메인 + Redis와 동일한 백엔드 | 모드 2 | URL 리디렉션 전파 세션 | 문서, 예제 |
| 다양한 프런트엔드 도메인 + 다양한 백엔드 Redis | 모드 3 | 세션을 얻기 위한 HTTP 요청 | 문서, 예제 |
c1.domain.com, c2.domain.com, c3.domain.com와 같이 동일한 기본 도메인 이름으로 여러 시스템을 배포할 수 있음을 의미합니다.http://a.com?id=1&name=2이었고, 로그인에 성공한 후에는 http://a.com?id=1이 되었습니다. Sa-Token-SSO에는 매개변수가 손실되지 않고 로그인 성공 후 원래 경로가 정확하게 반환되도록 보장하는 특별한 알고리즘이 있습니다.Sa-Token OAuth2 모듈은 다양한 시나리오의 인증 요구 사항을 해결하기 위해 4가지 인증 모드로 구분됩니다.
| 인증 모델 | 소개 |
|---|---|
| 인증 코드 형식 | OAuth2 표준 인증 단계에서 서버측은 코드를 릴리스하고 클라이언트측은 코드 코드를 획득하여 access_token |
| 숨겨진 | 대체 옵션으로, 서버는 URL 리디렉션을 사용하여 access_token을 클라이언트 페이지로 직접 전송합니다. |
| 비밀번호 유형 | 클라이언트는 인증을 위해 사용자의 계정 비밀번호를 직접 교환합니다 access_token |
| 클라이언트 인증서 유형 | 클라이언트 레벨의 서버측 client_token은 애플리케이션 자체의 자원 인증을 나타냅니다. |
자세한 참조 문서: https://sa-token.com/doc.html#/oauth2/readme
1. Sa-Token 기능은 충분한가요?
7년간의 노력: 5개의 핵심 모듈(로그인, 인증, SSO, OAuth2, 마이크로서비스) + 많은 실용적인 플러그인(짧은 토큰, jwt 통합, API 매개변수 서명, API 키 인증...) 권한 인증뿐만 아니라 원스톱 솔루션을 제공합니다.
2. Sa-Token은 배우기 쉬운가요?
중국어 문서 + 중국어 코드 주석 + 중국어 커뮤니케이션 커뮤니티 + 수많은 실제 사례 블로그 + 여러 비디오 튜토리얼 + 수많은 우수한 오픈 소스 프로젝트 통합 사례.
3. Sa-Token을 사용하는 사람들이 많이 있나요?
통계일(2026-1-25) 현재 Sa-Token의 위치는 다음과 같습니다.
많은 개발자들이 발로 투표한 데이터입니다. 나는 이 데이터가 어떤 말보다 Sa-Token의 인기를 더 잘 증명할 수 있다고 믿습니다.
4. Sa-Token은 어떤 권위 있는 인증을 보유하고 있나요?
명예에는 Gitee GVP 최우수 오픈 소스 프로젝트, GitCode G-Star 고품질 오픈 소스 프로젝트, OSCHINA 2021 인기 지수 TOP 30 오픈 소스 프로젝트, OSCHINA 2022 가장 인기 있는 중국 오픈 소스 프로젝트 커뮤니티 중 하나, Open Atomic Foundation 2023 빠르게 성장하는 오픈 소스 프로젝트, Dromara 조직 상위 프로젝트(1개), 신뢰할 수 있는 오픈 소스 커뮤니티의 예비 회원 및 그가 활동하고 있는 오픈소스 커뮤니티 'Dromara'가 '2024년 중국 인터넷 발전 혁신 및 투자 대회(오픈소스)'에서 2등상을 수상했습니다. Gitee High Star 프로젝트(5000+star). 2025년 웹 애플리케이션 개발을 위한 Gitee의 상위 2개 오픈 소스 프로젝트입니다.
5. Sa-Token에는 요금이 부과되나요?
Sa-Token은 Apache-2.0 오픈 소스 프로토콜을 채택하고 프레임워크 자체와 온라인 문서가 항상 무료이고 개방적임을 약속합니다. 물론 Sa-Token 후원에 관심이 있으시면 후원 링크를 주저하지 않으셔도 됩니다. 우리는 후원자 목록을 온라인 문서 표시와 정기적으로 동기화합니다. (주의하셔야 할 점은 본 후원은 우호적인 후원일 뿐 어떠한 상업적인 교류도 제공하지 않는다는 점입니다)
6. Sa-Token은 캡슐화된 SpringSecurity입니까? ApacheShiro의 쉘입니까?
아니요. Sa-Token은 백엔드 템플릿도 아니고 xx 프레임워크를 위한 보조 캡슐화 셸도 아니지만 처음부터 시작하는 순수한 자체 개발 프레임워크이며 코어 패키지에 대한 종속성이 전혀 없으며 완전히 독립적이고 제어 가능한 아키텍처 코어 + 많은 주류 프레임워크의 통합 적응입니다.
하나씩 표시할 수 없는 우수한 오픈소스 사례가 더 있습니다. Awesome-Sa-Token을 참조하세요.
Sa-Token 커뮤니티 회원은 다국어 구현 버전에 기여했습니다.
위의 언어에 좀 더 능숙한 개발자들이 함께 관련 버전을 만들어 보도록 진심으로 초대합니다. 🤝
우리는 프레임워크의 거의 모든 기술적 사항에 대해 해당 통합 예제를 별도로 제작했습니다. 이 압축 패키지에는 Sa-Token 로그인 인증, 권한 인증, SSO 싱글 사인온, OAUth2 통합 인증, 마이크로서비스 인증, API 키 인증, JWT 통합, 시스템 간 호출 매개변수 서명 확인 등과 같은 인증 및 인증의 모든 측면을 다루는 총 60개 이상의 데모가 있습니다.
다운로드 주소: https://sa-token.com/doc.html#/more/download-demos
QQ 커뮤니케이션 그룹: 1098917026 가입하려면 클릭
WeChat 커뮤니케이션 그룹:
<!-- -->추신: QR 코드를 스캔하여 WeChat(비고: sa-token)을 추가하여 그룹 채팅에 참여하도록 초대하세요.
그룹 채팅에 참여하면 얻을 수 있는 이점: