42153


Spring Securityでログイン処理を実装しているのですが、DB認証が出来ません。  
原因はConfigクラスでインジェクションしているdatasourceが正常に設定されていないからです…。

Configは・・・  
WebSecurtyConfig(@EnableWebSecurityのついたもの。)  
WebMvcConfig(@EnableWebMvcのついたもの)  
としています。

web.xmlのContextLoaderListenerのcontextConfigLocationの値が「WebSecurtyConfig」としているので「WebSecurtyConfig」がWEBアプリケーション用コンフィギュレーションクラスになるとおもい、「WebSecurtyConfig」にメッセージリソースの定義や、DataSourceの定義を書いているのですがDataSourceの設定がなぜか上手くできません。

原因はプロパティからの値が取得できないためですが、なぜ取得出来ないのかわかりません。  
現在、@Value()に直接値を書いて動かしている状態ですが、ちゃんとプロパティファイルから値を読むにはどうすればいいでしょうか？

WebSecurtyConfig

[code]

    @EnableWebSecurity
    @ComponentScan(basePackages= {"example.app","example.table"})
    @PropertySource("classpath:test.properties")
    public class WebSecurtyConfig extends WebSecurityConfigurerAdapter {
        @Bean(destroyMethod="close")
        public DataSource dataSource(
                @Value("${db.url}") String url,
                @Value("${db.usernm}") String username,
                @Value("${db.pass}") String password,
                @Value("${db.driverNm}") String driverNm) {
    
            BasicDataSource bds = new BasicDataSource();
            bds.setDriverClassName(driverNm); //driverNm = "${db.url}"になる･･･
            bds.setUrl(url);
            bds.setUsername(username);
            bds.setPassword(password);
            bds.setDefaultAutoCommit(false);
    
            return bds;
        }
    
[/code]

ちなみにWebMvcConfigのほうでは全く同じコードを書きましたが、正常にDataSource設定ができました。

(セキュリティコンフィグではプロパティファイルの値参照はできないのでしょうか？そもそもConfig設定これあっているのかも不安です・・・)


CC BY-SA 3.0
2018-03-05T06:00:13.913
42136
2018-03-06T01:29:19.603
2018-03-05T11:58:52.563
27196
27196
question
spring
Spring Securtiy DB認証について(Security Configでのプロパティ値の取り扱い方)


またまた自己解決しました・・・。

結論として、「@EnableWebSecurity」のクラスにはProperty値は参照できない。  
としました。(ソースありませんが、自分的に納得した感じです)

DB設定やメッセージリソースに関連する定義はSecurity Configに書かかずMvc Configに書くのが正解なんですね・・・。

Security
Configの「@ComponentScan(basePackages={"example.app","example.table"})」にMvcConfigクラスのパッケージを設定し、DataSourceをインジェクションすることで正常に動きました！

(自己解決ばかりですみません・・・もう少し考えてから投稿するようにします・・・。)


CC BY-SA 3.0
2018-03-06T01:29:19.603
42153
2018-03-06T01:29:19.603
27196
42136
answer