タイトルの通り、Spring Securityを実装したところ、ajaxが動かなくなりました。
ajaxはHTML内の<script>タグ内に書いています。
Spring Security実装前は動いていました。
WebSecurityConfig内のconfigureメソッドは以下です
Java
1protected void configure(HttpSecurity http) throws Exception { 2 // 認可の設定 3 http.authorizeRequests().antMatchers("/", "/ajax/**", "/showItemDetail" ) 4 .permitAll().anyRequest() 5 .authenticated().and() 6 // ログイン設定 7 .formLogin().loginPage("/toLogin").permitAll().loginProcessingUrl("/login").defaultSuccessUrl("/") 8 .failureUrl("/toLogin?error").usernameParameter("mail").passwordParameter("password").and() 9 // ログアウト設定 10 .logout().logoutUrl("/logout").permitAll().logoutRequestMatcher(new AntPathRequestMatcher("/logout")) 11 .logoutSuccessUrl("/"); 12 }
以下はAjaxの送信先の@RestControllerです
Java
1@RestController 2@RequestMapping("/ajax") 3public class AjaxController { 4 @Autowired 5 private CategoryService categoryService; 6 7 @RequestMapping("/getParent") 8 public Map<Integer, String> getParent(Integer id) { 9 List<Category> parentList = categoryService.getParent(id); 10 //以下長いので省略します 11 12 return parentMap; 13 } 14 15 @RequestMapping("/getChild") 16 public Map<Integer, String> getChild(String name, Integer id) { 17 List<Category> childList = categoryService.getChild(name, id); 18 //以下長いので省略します 19 20 return childMap; 21 } 22}
Config内のantMatchersでAjaxのパスを指定しているのですが、動かずに困っています。
よろしくお願いいたします。
追記
ブラウザのコンソールにはログイン時のみPOST http://localhost:8080/ajax/getParent 403 が表示されます。ログインしていない場合は何も表示されません。しかし、ログインしていてもしていなくてもajaxは動きません。
回答1件
あなたの回答
tips
プレビュー