안녕하세요.

여긴 자주 안오지만 프갤에서 답변 받으면서 열심히 공부하고 있습니다.

지라라는 웹사이트 클론으로 만들다가 스프링 시큐리티 관련해서 궁금한 점이 생겼는데요.


지라를 보면 마치 카카오톡 오픈채팅 만들듯이, 프로젝트를 만들고 누군가는 가입할 수 있는 시스템이 있는데,

a프로젝트에선 관리자인 '가'유저가 b프로젝트에서는 멤버인 경우 등등 권한이 프로젝트마다 달라지는데

이 프로젝트 별로 권한을 주는 방법이 너무 막막해서 질문 드립니다.



ac5939a70001b942813e33669735c1bcc2a977c21c773585f0dabed5e42e074dc2d2532d4ea5fd2bc9a114c2d1971e9e2489d7bb375bde84984c37fb377aff27d09a81b53cca5c1ba280e849a6aa


ac5939a70001b942813e33669735c1bcc2a977c21c773585f0dabed5e42e074dc2d2532d4ea5fd2bc9a114c2d1971e9e2489d7bb375bde84984c30fb3372ff271159f4d4c072ce3353e4823f7c

위 사진과 같이, 프로젝트 별로 권한을 보고 싶어서 authorities 테이블에 id와 authority에 더해 p_name이라는 컬럼을 더해 봤는데

막상 쿼리문을 짜보니깐 where절 끝 부분 a.p_name = ? 에서 ?부분의 값을 어떻게 줘야 하지? 라는 생각이 들더라고요.

결국 커스텀을 해야하는건데 이 부분이 너무 막막합니다.

여기에 멤버가 로그인 되어있더라도, 가입되지 않은 프로젝트의 url을 입력하면 입장이 불가능하게 하는 기능도 필요하고요..


시큐리티로 가능한 부분인가요?

아니면 그냥 시큐리티에서는 미로그인 유저 관련 큰 부분만 잡고가고

관련 컨트롤러의 서비스에서 권한을 직접 확인하는게 좋나요(글 삭제시 글 삭제 컨트롤러에서 권한 확인)?


질문이 장황한데

검색 키워드나 방향성만이라도 알려주시면 감사하겠습니다.