그래서 나는이 레거시 앱을 spring MVC 및 JSP로 실행하고, mongo DB에서 읽기
, Spring boot 및 angular JS를 사용하는 최신 앱으로 대체하려고 생각하고 있습니다.
나는 프레임 워크를 찾고 있지 않습니다. 제 질문은 인증과 관련하여 더 개념적이며 앵귤러와 스프링 부트 사이에서 작동하는 방식입니다.
인증을 위해 제 3자를 사용하고 싶지 않습니다. 내부 DB 사용자와 비밀번호를 계속 사용하고 싶습니다.
또한 클라이언트가 먼저 등록한 다음 각도 및 인증을 우회하는 모든 요청에 토큰을 전송해야하는 나머지 API가 있습니다.
그래서 과거에 (고대 j2ee) 나는 Servlet 필터를 가지고 있었는데,이 필터 전쟁은 어떤 요청에서든 실행되었고, 세션이 인증되었는지 확인했습니다. 그렇지 않은 경우 인증 페이지로 전달한 다음 결과를 세션에 저장합니다.
이것의 라인을 따라 뭔가 :
@WebFilter("/*")
public class LoginFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(false);
String loginURI = request.getContextPath() + "/login";
boolean loggedIn = session != null && session.getAttribute("user") != null;
boolean loginRequest = request.getRequestURI().equals(loginURI);
if (loggedIn || loginRequest) {
chain.doFilter(request, response);
} else {
response.sendRedirect(loginURI);
}
}
// ...
}
Angular JS로 동일한 인증 메커니즘을 수행하는 방법은 무엇입니까?
서블릿의 필터에 해당하는 것은 무엇입니까?
Angular는 클라이언트 측 렌더링이기 때문에 어떻게 보호합니까?
입력 해 주셔서 감사합니다!