pro-sejong-auth
세종대 로그인 API · Java · Spring Boot

세종대학교 포털 인증,
3줄이면 끝

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

Maven Central latest version MIT License GitHub stars
Sejong University seal
Java
SejongAuthResult result = sejongAuthEngine.authenticate("학번", "비밀번호");
result.getName();    // "홍길동"
result.getMajor();   // "컴퓨터공학과"

무엇을 해 주나요

세종대 학생 인증이 필요한 서비스(동아리, 학생 커뮤니티, 학내 이벤트)를 위한 라이브러리입니다.

포털 SSO 자동 처리

세종 포털 로그인, SSO 리다이렉트, 세션 쿠키를 알아서 처리하고 비밀번호가 틀리면 바로 알려 줍니다.

학생 정보 + 고전독서

이름, 학과, 학년, 재학 상태와 대양휴머니티칼리지 고전독서 인증 현황을 구조화된 객체로 돌려줍니다.

설정 없이 바로

Spring Boot Auto Configuration으로 의존성만 추가하면 SuhSejongAuthEngine을 주입받아 씁니다.

지금 바로 체험하기

본인 세종대 포털 계정으로 라이브러리가 실제로 무엇을 돌려주는지 확인해 보세요.

조회 방식
입력값은 저장하지 않습니다. 데모 서버(lab.suhsaechan.kr)가 이 라이브러리로 세종대 포털에 한 번 로그인하고 결과만 돌려줍니다.

인증 결과

왼쪽에 학번과 비밀번호를 넣고 인증하기를 누르세요.

어떻게 동작하나요

라이브러리는 사용자가 브라우저에서 하는 로그인을 서버에서 그대로 재현합니다.

1

학번·비밀번호 전달

내 서비스가 authenticate() 호출

2

포털 로그인

portal.sejong.ac.kr 로그인, 실패 시 즉시 예외

3

SSO로 정보 조회

DHC(classic.sejong.ac.kr) · SIS(sjpt.sejong.ac.kr)

4

결과 객체 반환

이름, 학과, 학년, 고전독서, 연락처

빠른 시작

Maven Central에서 배포합니다. Gradle·Maven 기본 저장소라 의존성 한 줄이면 됩니다.

1저장소 (기본값)

build.gradle
repositories {
    mavenCentral()
    // Maven Central 은 기본 저장소 (추가 설정 없음)
}

2의존성 추가

build.gradle
dependencies {
    implementation "kr.suhsaechan:sejong-univ-auth:1.2.16"
}

최신 버전은 위 Maven Central 배지에서 확인하세요.

3주입받아 호출

AuthController.java
@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

같은 기능, 같은 결과 필드, 같은 에러 코드입니다.

Python 3.9+
pip install pro-sejong-auth

from sejong_auth import authenticate
result = authenticate("student id", "password")
print(result.name, result.major)
Node 18+ (TypeScript)
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 -> // 파싱·세션 오류
    }
}

설정 (선택)

application.yml
sejong:
  auth:
    ssl-verification: true   # 포털 인증서 검증 (기본 true)
    timeout-seconds: 10      # 요청 제한 시간 (기본 10)
    max-retry: 3             # 재시도 횟수 (기본 3)

결과 필드와 에러 코드

통합 인증 결과(SejongAuthResult) 기준입니다. 연락처 필드는 SIS 조회가 실패하면 null입니다.

필드설명
studentId학번
name이름
major학과(전공)
grade학년
status학적 상태 (재학, 휴학, 졸업)
classicReading고전독서 인증 현황, 시험·대회 기록
email이메일
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 이슈에 에러 코드와 함께 남겨 주세요.