b2c5136992f9a290ba86590b9c5bf070c3831136
[integration/csit.git] / plans / so / integration-etsi-testing / so-simulators / sdc-simulator / src / main / java / org / onap / so / sdcsimulator / configration / WebSecurityConfigImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.so.sdcsimulator.configration;
21
22 import org.onap.so.sdcsimulator.utils.Constants;
23 import org.springframework.beans.factory.annotation.Autowired;
24 import org.springframework.beans.factory.annotation.Value;
25 import org.springframework.context.annotation.Bean;
26 import org.springframework.context.annotation.Configuration;
27 import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
28 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
29 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
30 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
31 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
32
33 /**
34  * @author waqas.ikram@ericsson.com
35  *
36  */
37 @Configuration
38 @EnableWebSecurity
39 public class WebSecurityConfigImpl extends WebSecurityConfigurerAdapter {
40
41     private final String username;
42     private final String password;
43     private final String role;
44
45     public WebSecurityConfigImpl(@Value("${spring.security.username}") final String username,
46             @Value("${spring.security.password}") final String password,
47             @Value("${spring.security.role}") final String role) {
48         this.username = username;
49         this.password = password;
50         this.role = role;
51     }
52
53
54     @Override
55     protected void configure(final HttpSecurity http) throws Exception {
56         http.csrf().disable().authorizeRequests().antMatchers(Constants.CATALOG_URL + "/**/**").authenticated().and()
57                 .httpBasic();
58     }
59
60     @Bean
61     public BCryptPasswordEncoder passwordEncoder() {
62         return new BCryptPasswordEncoder();
63     }
64
65     @Autowired
66     public void configureGlobal(final AuthenticationManagerBuilder auth) throws Exception {
67         auth.inMemoryAuthentication().passwordEncoder(passwordEncoder()).withUser(username).password(password)
68                 .roles(role);
69     }
70
71 }