[Jenkins] 403 No valid crumb was included in the request

hanana·2024년 4월 27일
0

Jenkins - gitea
Webhook연동과정에서 설정을 완료하고 전달시험버튼을 눌렀을 때

이러한 403 응답과 함께 웹훅 연결이 실패했다는 메세지가 나타났다.

CSRF와 관련된 보안문제로

정석적인 방법이라면 에러메시지에서 말하는 대로 crumb를 요청에 추가해야겠지만, 레퍼런스가 마땅치 않아서 SCRF를 disable 하는 방법으로 우회하려고 한다.


1. Jenkins Script 사용

https://stackoverflow.com/questions/76389172/how-to-disable-csrf-protection-in-jenkins
스택오버플로우에서 찾은 방법이다.

Dashboard > Jenkins관리 > Script Console 탭으로 이동하여

import jenkins.model.Jenkins

def instance = Jenkins.instance
instance.setCrumbIssuer(null)

println('success') // 에러 없이 스크립트 실행여부 확인

를 입력하고 실행 후 젠킨스를 재실행 해준다.

근데
안된다.. -_-


2. Strict Crumb Issuer Plugin 이용하기

  1. Dashboard > Jenkins관리 > Plugins > Available plugins
    에서 Strict Crumb Issuer Plugin 플러그인을 설치후 젠킨스를 재실행 한다.

  2. Dashboard > Jenkins관리 > Security 탭으로 이동하여
    CSRF Protection 섹션으로 이동하여 아래처럼 설정을 전부 다 해제한다.

근데도
안된다.. .. ..
도대체 문제가 뭘까...........


[해결] URL 변경하기!

git private Repository를 clone 할 때와 비슷하게
jenkinsURL 대신 id:secretKey@JenkinsURL을 입력해주어야 했다.

Dashboard > 사용자 > 대표계정 선택 > 설정 > API Token 탭으로 이동하여
새로운 토큰 생성


Webhook url을 아래와 같은 형태로 입력해준다.

http://myname:11b27db98e9cb113c0cff580ba64f8d685@mydomain:33333/job/my_project/build?token=my_token
profile
성숙해지려고 노력하지 않으면 성숙하기까지 매우 많은 시간이 걸린다.

0개의 댓글