세종대학교 포털 인증,
3줄이면 끝
학번과 비밀번호만으로 세종대 재학생 여부, 학과, 학년, 고전독서 인증, 연락처를 가져옵니다. SSO 리다이렉트, 쿠키, HTML 파싱은 라이브러리가 처리합니다.

SejongAuthResult result = sejongAuthEngine.authenticate("학번", "비밀번호"); result.getName(); // "홍길동" result.getMajor(); // "컴퓨터공학과"
무엇을 해 주나요
세종대 학생 인증이 필요한 서비스(동아리, 학생 커뮤니티, 학내 이벤트)를 위한 라이브러리입니다.
포털 SSO 자동 처리
세종 포털 로그인, SSO 리다이렉트, 세션 쿠키를 알아서 처리하고 비밀번호가 틀리면 바로 알려 줍니다.
학생 정보 + 고전독서
이름, 학과, 학년, 재학 상태와 대양휴머니티칼리지 고전독서 인증 현황을 구조화된 객체로 돌려줍니다.
설정 없이 바로
Spring Boot Auto Configuration으로 의존성만 추가하면 SuhSejongAuthEngine을 주입받아 씁니다.
지금 바로 체험하기
본인 세종대 포털 계정으로 라이브러리가 실제로 무엇을 돌려주는지 확인해 보세요.
인증 결과
어떻게 동작하나요
라이브러리는 사용자가 브라우저에서 하는 로그인을 서버에서 그대로 재현합니다.
학번·비밀번호 전달
내 서비스가 authenticate() 호출
포털 로그인
portal.sejong.ac.kr 로그인, 실패 시 즉시 예외
SSO로 정보 조회
DHC(classic.sejong.ac.kr) · SIS(sjpt.sejong.ac.kr)
결과 객체 반환
이름, 학과, 학년, 고전독서, 연락처
빠른 시작
Maven Central에서 배포합니다. Gradle·Maven 기본 저장소라 의존성 한 줄이면 됩니다.
1저장소 (기본값)
repositories {
mavenCentral()
// Maven Central 은 기본 저장소 (추가 설정 없음)
}<!-- Maven Central 은 기본 저장소 (repositories 설정 불필요) -->
2의존성 추가
dependencies {
implementation "kr.suhsaechan:sejong-univ-auth:1.2.16"
}<dependency>
<groupId>kr.suhsaechan</groupId>
<artifactId>sejong-univ-auth</artifactId>
<version>1.2.16</version>
</dependency>최신 버전은 위 Maven Central 배지에서 확인하세요.
3주입받아 호출
@RestController @RequiredArgsConstructor public class AuthController { private final SuhSejongAuthEngine sejongAuthEngine; @PostMapping("/auth/sejong") public SejongAuthResult authenticate(@RequestParam String studentId, @RequestParam String password) { return sejongAuthEngine.authenticate(studentId, password); } }
+Python · Node
같은 기능, 같은 결과 필드, 같은 에러 코드입니다.
pip install pro-sejong-auth from sejong_auth import authenticate result = authenticate("student id", "password") print(result.name, result.major)
npm install pro-sejong-auth import { authenticate } from 'pro-sejong-auth'; const result = await authenticate('student id', 'password'); console.log(result.name, result.major);
사용법
필요한 정보에 맞는 메서드를 고르세요. 통합 인증은 연락처 조회가 실패해도 학생 정보는 돌려줍니다.
| 메서드 | 용도 | 반환 |
|---|---|---|
| authenticate(id, pw) | 통합: 학생 정보 + 고전독서 + 연락처 | SejongAuthResult |
| authenticateWithDHC(id, pw) | 학생 정보 + 고전독서 (보장) | SejongDhcAuthResult |
| authenticateWithSIS(id, pw) | 학생 정보 + 연락처 (보장) | SejongSisAuthResult |
| authenticateWithDHCRaw(id, pw) | DHC + 원본 HTML (디버깅) | SejongDhcAuthResult |
| authenticateWithSISRaw(id, pw) | SIS + 원본 JSON (디버깅) | SejongSisAuthResult |
SejongDhcAuthResult result = sejongAuthEngine.authenticateWithDHC(studentId, password); for (ClassicCertification certification : result.getClassicReading().getCertifications()) { System.out.println(certification.getArea() + " " + certification.getCertifiedCount() + "/" + certification.getRequiredCount()); }
try { sejongAuthEngine.authenticate(studentId, password); } catch (SejongAuthException exception) { switch (exception.getErrorCode()) { case AUTHENTICATION_FAILED -> // 학번·비밀번호 불일치 case CONNECTION_FAILED, CONNECTION_TIMEOUT -> // 포털 장애 default -> // 파싱·세션 오류 } }
설정 (선택)
sejong:
auth:
ssl-verification: true # 포털 인증서 검증 (기본 true)
timeout-seconds: 10 # 요청 제한 시간 (기본 10)
max-retry: 3 # 재시도 횟수 (기본 3)결과 필드와 에러 코드
통합 인증 결과(SejongAuthResult) 기준입니다. 연락처 필드는 SIS 조회가 실패하면 null입니다.
| 필드 | 설명 |
|---|---|
| studentId | 학번 |
| name | 이름 |
| major | 학과(전공) |
| grade | 학년 |
| status | 학적 상태 (재학, 휴학, 졸업) |
| classicReading | 고전독서 인증 현황, 시험·대회 기록 |
| 이메일 | |
| phoneNumber | 전화번호 (010-1234-5678) |
| englishName | 영문 이름 |
| authenticatedAt | 인증 시각 |
| 에러 코드 | 의미 |
|---|
FAQ
세종대 로그인 API가 있나요?
네. pro-sejong-auth는 세종대학교 포털 로그인(SSO)을 대신 처리하는 Java·Spring Boot 라이브러리입니다. 학번과 비밀번호로 재학생 여부, 학과, 학년, 고전독서 인증, 연락처를 조회합니다.
비밀번호를 저장하나요?
라이브러리는 비밀번호를 저장하지 않고 포털 로그인 요청에만 씁니다. 이 페이지의 데모 서버도 결과만 돌려주고 입력값을 저장하지 않습니다. 실제 서비스에서는 비밀번호를 로그·DB에 남기지 않도록 주의하세요.
세종대학교 공식 라이브러리인가요?
아닙니다. 세종대 학생이 만든 개인 오픈소스이며 학교와 무관합니다. 포털 구조가 바뀌면 동작이 멈출 수 있고, 그때는 이슈로 알려 주세요.
요구 사항은?
Java 17 이상, Spring Boot 3.x. HTTP는 OkHttp, HTML 파싱은 jsoup을 씁니다.
인증이 갑자기 실패해요
위 데모로 먼저 확인해 보세요. 데모도 실패하면 포털 쪽 변경일 가능성이 높습니다. GitHub 이슈에 에러 코드와 함께 남겨 주세요.