前提・実現したいこと
SpringSecurityでログイン認証を行った後、トップ画面(top.html)から編集画面(edit)に遷移できず、500のエラーが出てしまう。
発生している問題・エラーメッセージ
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/edit.html]")] with root cause
一度ログインできていたのですが、遷移先のリンクをhtmlに追記した辺りから急にエラーが出るようになりました。
該当のソースコード
各部関係していそうなところを抜粋しています。
SecurityConfig
1@Override 2 protected void configure(HttpSecurity http) throws Exception { 3 http 4 // セキュリティ認証管理 5 .authorizeRequests() 6 .antMatchers("/login", "/signup") // 認証なしで許可するパス 7 .permitAll() 8 .anyRequest() 9 .authenticated() 10 .and() 11 // 認証ページ処理 12 .formLogin() 13 .loginPage("/login") 14 .loginProcessingUrl("/login") 15 .usernameParameter("email") 16 .passwordParameter("password") 17 .failureUrl("/login?error") 18 .defaultSuccessUrl("/top") 19 .permitAll() 20 .and() 21 // ログアウト処理 22 .logout() 23 .logoutSuccessUrl("/login") 24 .deleteCookies("JSESSIONID", "SESSION") 25 .invalidateHttpSession(true) 26 .permitAll(); 27 }
MvcConfig
1@Configuration 2public class MvcConfig implements WebMvcConfigurer { 3 4 public void addViewControllers(ViewControllerRegistry registry) { 5 registry.addViewController("/login").setViewName("login"); 6 registry.addViewController("/signup").setViewName("signup"); 7 registry.addViewController("/top").setViewName("top"); 8 registry.addViewController("/").setViewName("top"); 9 registry.addViewController("edit").setViewName("edit"); 10 } 11}
TopController
1@RestController 2@RequestMapping(value="top") 3public class TopController { 4 @GetMapping 5 public ModelAndView topPage(@AuthenticationPrincipal LoginUser loginUser, ModelAndView mav) { 6 mav.addObject("loginUser", loginUser); 7 return mav; 8 } 9}
tophtml
1<!DOCTYPE html> 2<html xmlns="http://www.w3.org/1999/xhtml" 3 xmlns:th="https://www.thymeleaf.org" 4 xmlns:sec="https://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> 5<head> 6<title>人材管理システム</title> 7</head> 8<body> 9 <h1 th:inline>人材管理システム</h1> 10 <a th:href="@{/edit}">編集</a> 11 <form th:action="@{/logout}" method="post"> 12 <input type="submit" value="ログアウト" /> 13 </form> 14</body> 15</html>
試したこと
MvcConfigのtopを設定している箇所とControllerのvalue値に/を入れたり入れなかったりしましたがうまくいかず。
htmlで追記した部分もコメントアウトしてみましたが駄目でした。
セッションが残っているのかとも思ったのですが、chromeのシークレットでもエラーとなります。
edit.htmlはtop.htmlのvalueの値が変わっているのみです。
補足情報(FW/ツールのバージョンなど)
Eclipse
SpringBoot(gradle)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/27 13:00