Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit dcec528

Browse files
add spring security
1 parent fec3bc8 commit dcec528

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed

‎pom.xml‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
<groupId>org.springframework.boot</groupId>
3939
<artifactId>spring-boot-starter-web</artifactId>
4040
</dependency>
41+
<dependency>
42+
<groupId>org.springframework.boot</groupId>
43+
<artifactId>spring-boot-starter-security</artifactId>
44+
</dependency>
4145
<dependency>
4246
<groupId>mysql</groupId>
4347
<artifactId>mysql-connector-java</artifactId>
@@ -57,6 +61,11 @@
5761
<artifactId>spring-boot-starter-test</artifactId>
5862
<scope>test</scope>
5963
</dependency>
64+
<dependency>
65+
<groupId>org.springframework.security</groupId>
66+
<artifactId>spring-security-test</artifactId>
67+
<scope>test</scope>
68+
</dependency>
6069
<dependency>
6170
<groupId>com.h2database</groupId>
6271
<artifactId>h2</artifactId>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.taskagile.config;
2+
3+
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
4+
import org.springframework.security.config.annotation.web.builders.WebSecurity;
5+
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
6+
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
7+
8+
@EnableWebSecurity
9+
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
10+
11+
private static final String[] PUBLIC = new String[]{
12+
"/error", "/login", "/logout", "/register", "/api/registrations"};
13+
14+
@Override
15+
protected void configure(HttpSecurity http) throws Exception {
16+
http
17+
.authorizeRequests()
18+
.antMatchers(PUBLIC).permitAll()
19+
.anyRequest().authenticated()
20+
.and()
21+
.formLogin()
22+
.loginPage("/login")
23+
.and()
24+
.logout()
25+
.logoutUrl("/logout")
26+
.logoutSuccessUrl("/login?logged-out")
27+
.and()
28+
.csrf().disable();
29+
}
30+
31+
@Override
32+
public void configure(WebSecurity web) {
33+
web.ignoring().antMatchers("/static/**", "/js/**", "/css/**", "/images/**", "/favicon.ico");
34+
}
35+
}

‎src/main/resources/application.properties‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ spring.datasource.password=<password>
44
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
55

66
logging.level.com.taskagile=DEBUG
7+
logging.level.org.springframework.security=DEBUG

‎src/test/java/com/taskagile/web/apis/RegistrationApiControllerTests.java‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.taskagile.web.apis;
22

3+
import com.taskagile.config.SecurityConfiguration;
34
import com.taskagile.domain.application.UserService;
45
import com.taskagile.domain.model.user.EmailAddressExistsException;
56
import com.taskagile.domain.model.user.UsernameExistsException;
@@ -11,6 +12,7 @@
1112
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
1213
import org.springframework.boot.test.mock.mockito.MockBean;
1314
import org.springframework.http.MediaType;
15+
import org.springframework.test.context.ContextConfiguration;
1416
import org.springframework.test.context.junit4.SpringRunner;
1517
import org.springframework.test.web.servlet.MockMvc;
1618

@@ -21,7 +23,8 @@
2123
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
2224

2325
@RunWith(SpringRunner.class)
24-
@WebMvcTest(RegistrationApiController.class)
26+
@ContextConfiguration(classes = {SecurityConfiguration.class, RegistrationApiController.class})
27+
@WebMvcTest
2528
public class RegistrationApiControllerTests {
2629

2730
@Autowired

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /