티스토리 뷰

화면을 통해 소방서 정보를 등록하면 DB 속에는 잘 들어가는 것을 확인할 수 있다.

 

 

 

 

오류

vue 서버에서는 성공이라고 뜨지만 Spring Security에 걸려 이런 화면으로 넘어간다

 

 

 

 

[Vue.js]

methods: {
    submitForm3: function() {
      const url = 'http://localhost:7777/auth/loginProc'
      const data = {
        firestationname: this.firestationname,
        firestationPw: this.firestationPw
      }
      axios.post(url, data)
        .then(function(response) {
          console.log(response)
          alert('성공')
          // window.location.href = 'http://localhost:7777/admin/list'
        })
        .catch(function(error) {
          console.log(error)
          alert('실패')
        })
    }
  }

[Spring]

 @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .httpBasic().disable()
                .cors().configurationSource(corsConfigurationSource())
                .and()
                .csrf().disable()
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                .and()
                .authorizeRequests()
                    .antMatchers("/", "/auth/**", "/css/**", "/js/**").permitAll()
                    .antMatchers(HttpMethod.PUT, "/put/**").hasAnyRole("USER")
                    .antMatchers(HttpMethod.POST, "/post/**").hasAnyRole("USER")
                    .antMatchers(HttpMethod.GET, "/get/**").hasAnyRole("USER")
                    .antMatchers("/admin/**").hasAnyRole("ADMIN")
                    .anyRequest()
                        .authenticated()
                .and()
                    .formLogin()
                    .loginPage("/auth/loginForm") // 로그인 페이지
                    .loginProcessingUrl("/auth/loginProc")
                    .defaultSuccessUrl("/")
                    .failureUrl("/auth/loginForm")
                .and()
                .addFilterBefore(new JwtAuthenticationFilter(jwtTokenProvider),
                        UsernamePasswordAuthenticationFilter.class);

    }

 

내 생각

보내는 메소드를 보면 Spring 에서 loginProcessingUrl("/auth/loginProc") 와 동일하지만 FormLogin 의 로그인 페이지가 달라서 생기는 오류인 것 같다.

 

 

 

templates/loginForm

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="container">
    <form action="/auth/loginProc" method="post">
        <div class="form-group">
            <label for="username">Username : </label>
            <input type="text" name="username" class="form-control" placeholder="Enter username" id="username">
        </div>

        <div class="form-group">
            <label for="password">Password:</label>
            <input type="password" name="password" class="form-control" placeholder="Enter password" id="password">
        </div>

        <button id="btn-login" class="btn btn-primary">로그인</button>
    </form>
</div>
</body>
</html>

 

따로 loginForm 을 만들어 form action을 이용하여 POST 함으로서 오류를 해결했다.

DB 값과 비교하여 로그인/ 로그인 실패까지는 성공했지만 로그인이 되었을 때 접근 권한의 설정이 잘못 된 것 같다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함