notnullwhat
317
2020-07-10 17:50:14 작성 2020-07-10 17:52:30 수정됨
2
262

스프링 시큐리티 로그인 질문입니다.


A라는 사이트에서 로그인 할때 B라는 사이트 로그인도 같이 실행하고 싶은데요.

현재 구현 해 놓은 결과를 보면 A라는 사이트 로그인 할때 B쪽 로그인도 가능 하도록 해놨습니다.

하지만 B 프로젝트 console창에 나오는 로그로는 로그인 된걸로 나오지만 B 사이트에 접근하면 로그인을 해야 하더라구요.


스프링시큐리티에서 자동으로 막는것으로 추정하고 있는데 방법이 없을까요?


A의 JS 소스 및 B의 스프링스큐리티에 접근하기 위한 JAVA 소스

	function login() {
		var userId = $("#user_id_text").val();
		var userPw = $("#user_pw_text").val();
		
		$.ajax({
			type : "POST"
			,url : "/loginProcess"
			,data : $("#login_form").serialize()
			,dataType : "json"
			,success : function (data) {
				if(data.result == true) {
					location = "/admin/sdsLogin?userId="+userId+"&userPw="+userPw;
					window.location = "/admin/notice";
				} else {
					alert("login 실패");
				}
			}
		});
	}


	@RequestMapping(value = "/admin/sdsLogin", method = RequestMethod.GET)
	public void sdsLogin(HttpServletRequest request
			,@RequestParam(value="userId", defaultValue="-")String userId
			,@RequestParam(value="userPw", defaultValue="-")String userPw) {
		try {
			String data = URLEncoder.encode("lb_userId", "UTF-8") + "=" + URLEncoder.encode(userId, "UTF-8") + "&" + URLEncoder.encode("lb_userPw", "UTF-8") + "=" + URLEncoder.encode(userPw, "UTF-8")  + "&" + URLEncoder.encode("login_param", "UTF-8") + "=" + URLEncoder.encode("admin_login", "UTF-8");
			URL url = new URL("http://localhost:8080/loginProcessing");
			URLConnection conn = url.openConnection();
			conn.setDoOutput(true);
			OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
			wr.write(data);
			wr.flush();
			BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
			String line;
			while ((line = rd.readLine()) != null) {
				System.out.println(line);
			}
			wr.close();
			rd.close();
		} catch (Exception e) {
			
		}
	}



B의 스프링 시큐리티 설정 부분


  		<security:form-login login-page="/"
			login-processing-url="/loginProcessing"
			username-parameter="lb_userId"
			password-parameter="lb_userPw"
			authentication-success-handler-ref="loginSuccessHandler"
			authentication-failure-handler-ref="loginFailureHandler"			
		/>


0
  • 답변 2

  • 유리세계
    3k
    2020-07-13 10:24:11

    시큐리티 로그인인 클라이언트 단에서 처리가 되어야 합니다.

    서버단에서 커넥션을 걸어봐야 서버가 로그인을 한 것이지 클라이언트가 로그인을 한게 아니기 때문이죠

  • notnullwhat
    317
    2020-07-15 10:05:26

    친절한 답변 감사합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.