
SpringSecurityによるログイン認証機能のためstaticフォルダにアクセスできなくなりました。
いろいろと修正を試しましたが読み込みに成功しません。ぜひともご意見いただけるとありがたいです。
ログイン認証取り付け前は
java
1<link th:href="@{/css/color.css}" rel="stylesheet"/>
上記コードのようにアクセスすれば良かったのでアクセスさきはこのままでよいと思います。
HTMLとして書き出されるとhttp://localhost:8080/css/colorになります。
SpringSecurityによるログイン認証設置後にstaticフォルダにアクセスできなくなりました。
HTMLからのリンク、直接のアクセスどちらも失敗します。
WebSecurityConfigurerAdapterを継承したクラスは以下のように設定しています。
DemoSecurityConfig.java
java
1@Configuration 2@EnableWebSecurity 3public class DemoSecurityConfig extends WebSecurityConfigurerAdapter { 4 5 @Autowired 6 private UserInfoService userInfoService; 7 8 @Override 9 protected void configure(AuthenticationManagerBuilder auth) throws Exception { 10 //独自認証を設定 11 auth.authenticationProvider(createAuthProvider()); 12 13 } 14 15 private AuthenticationProvider createAuthProvider() { 16 DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(); 17 //user_infoテーブルのemailとpasswordで判定 18 authProvider.setUserDetailsService(userInfoService); 19 authProvider.setPasswordEncoder(new BCryptPasswordEncoder()); 20 21 return authProvider; 22 } 23 24 @Override 25 protected void configure(HttpSecurity http) throws Exception { 26 27 http.authorizeRequests() 28 .antMatchers("/register/**").permitAll()//**はそれより下の階層全て 29 .anyRequest().authenticated() 30 .and() 31 .formLogin() 32 .loginPage("/showMyLoginPage") 33 .loginProcessingUrl("/authenticateTheUser") 34 .permitAll() 35 .and() 36 .logout().permitAll() 37 .and() 38 .exceptionHandling().accessDeniedPage("/access-denied"); 39 40 } 41 42 @Override 43 public void configure(WebSecurity web) { 44 //ログイン認証前でもアクセスできるように設定できるらしいが動作していない 45 web.ignoring().antMatchers("/css/**", "/js/**", "/img/**","/bootstrap/**"); 46 } 47 48} 49
また、WebMvcConfigurerを実装したクラスは以下のようになっています。
WebMvcConfig.java
java
1@Configuration 2public class WebMvcConfig implements WebMvcConfigurer { 3 4 @Override 5 public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 6 //デフォルトルートパスを使用 7 configurer.enable(); 8 } 9 10 @Override 11 public void addResourceHandlers(ResourceHandlerRegistry registry) { 12 //ハンドラーでstaticコンテンツにアクセスできるようにする 動作していない 13 registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 14 // to serve static .html pages... 15 registry.addResourceHandler("/static/**").addResourceLocations("/resources/static/"); 16 } 17}
SpringSecurityを動作させたときにスタティックコンテンツにアクセスするにはこのほかにどのような設定が必要でしょうか。もしくはコードに間違いがあるのでしょうか。


回答2件
あなたの回答
tips
プレビュー