Skip to content

Commit f2fd3c5

Browse files
author
dimMaryanto@win10
committed
init project
0 parents commit f2fd3c5

File tree

7 files changed

+217
-0
lines changed

7 files changed

+217
-0
lines changed

.gitignore

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
target/
2+
.mvn/
3+
4+
### STS ###
5+
.apt_generated
6+
.classpath
7+
.factorypath
8+
.project
9+
.settings
10+
.springBeans
11+
.sts4-cache
12+
13+
### IntelliJ IDEA ###
14+
.idea
15+
*.iws
16+
*.iml
17+
*.ipr
18+
19+
### NetBeans ###
20+
nbproject/private/
21+
build/
22+
nbbuild/
23+
dist/
24+
nbdist/
25+
.nb-gradle/
26+
27+
### systemfiles
28+
.DS_Store

pom.xml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<groupId>com.maryanto.dimas.example</groupId>
7+
<artifactId>springboot-security-ldap-example</artifactId>
8+
<version>0.0.1-SNAPSHOT</version>
9+
<packaging>jar</packaging>
10+
11+
<name>springboot-security-ldap-example</name>
12+
<description>Belajar spring security ldap</description>
13+
14+
<parent>
15+
<groupId>org.springframework.boot</groupId>
16+
<artifactId>spring-boot-starter-parent</artifactId>
17+
<version>1.5.14.RELEASE</version>
18+
<relativePath/> <!-- lookup parent from repository -->
19+
</parent>
20+
21+
<properties>
22+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
24+
<java.version>1.8</java.version>
25+
</properties>
26+
27+
<dependencies>
28+
<dependency>
29+
<groupId>org.springframework.boot</groupId>
30+
<artifactId>spring-boot-starter-actuator</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>org.springframework.boot</groupId>
34+
<artifactId>spring-boot-starter-data-ldap</artifactId>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.springframework.boot</groupId>
38+
<artifactId>spring-boot-starter-security</artifactId>
39+
</dependency>
40+
<dependency>
41+
<groupId>org.springframework.security</groupId>
42+
<artifactId>spring-security-ldap</artifactId>
43+
<version>4.2.7.RELEASE</version>
44+
</dependency>
45+
<dependency>
46+
<groupId>org.apache.directory.server</groupId>
47+
<artifactId>apacheds-server-jndi</artifactId>
48+
<version>1.5.5</version>
49+
</dependency>
50+
<dependency>
51+
<groupId>org.springframework.boot</groupId>
52+
<artifactId>spring-boot-starter-web</artifactId>
53+
</dependency>
54+
55+
<dependency>
56+
<groupId>org.springframework.boot</groupId>
57+
<artifactId>spring-boot-devtools</artifactId>
58+
<scope>runtime</scope>
59+
</dependency>
60+
<dependency>
61+
<groupId>org.projectlombok</groupId>
62+
<artifactId>lombok</artifactId>
63+
<optional>true</optional>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.springframework.boot</groupId>
67+
<artifactId>spring-boot-starter-test</artifactId>
68+
<scope>test</scope>
69+
</dependency>
70+
<dependency>
71+
<groupId>org.springframework.security</groupId>
72+
<artifactId>spring-security-test</artifactId>
73+
<scope>test</scope>
74+
</dependency>
75+
</dependencies>
76+
77+
<build>
78+
<plugins>
79+
<plugin>
80+
<groupId>org.springframework.boot</groupId>
81+
<artifactId>spring-boot-maven-plugin</artifactId>
82+
</plugin>
83+
</plugins>
84+
</build>
85+
86+
87+
</project>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.maryanto.dimas.example;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
@SpringBootApplication
7+
public class SecurityLDAP {
8+
9+
public static void main(String[] args) {
10+
SpringApplication.run(SecurityLDAP.class, args);
11+
}
12+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.maryanto.dimas.example.configuration;
2+
3+
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
4+
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
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 SecurityLdapConfiguration extends WebSecurityConfigurerAdapter {
10+
11+
12+
@Override
13+
protected void configure(HttpSecurity http) throws Exception {
14+
// super.configure(http);
15+
http.authorizeRequests()
16+
.anyRequest()
17+
.authenticated()
18+
.and()
19+
.httpBasic();
20+
}
21+
22+
@Override
23+
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
24+
// super.configure(auth);
25+
auth.ldapAuthentication()
26+
.userSearchBase("ou=people")
27+
.userSearchFilter("(uid={0})")
28+
.groupSearchBase("ou=groups")
29+
.groupSearchFilter("member={0}")
30+
.contextSource()
31+
.root("dc=baeldung,dc=com")
32+
.ldif("classpath:/users.ldif");
33+
}
34+
35+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.maryanto.dimas.example.controller;
2+
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
5+
import org.springframework.web.bind.annotation.RestController;
6+
7+
import java.security.Principal;
8+
import java.util.Date;
9+
import java.util.HashMap;
10+
import java.util.Map;
11+
12+
@RestController
13+
@RequestMapping("/api/secured")
14+
public class ExampleSecureController {
15+
16+
17+
@GetMapping("/object")
18+
public Map<String, Object> showProp(Principal principal) {
19+
Map<String, Object> params = new HashMap<>();
20+
params.put("currentTime", new Date());
21+
params.put("currentUser", principal.getName());
22+
return params;
23+
}
24+
}

src/main/resources/application.properties

Whitespace-only changes.

src/main/resources/users.ldif

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
dn: ou=groups,dc=baeldung,dc=com
2+
objectclass: top
3+
objectclass: organizationalUnit
4+
ou: groups
5+
6+
dn: ou=people,dc=baeldung,dc=com
7+
objectclass: top
8+
objectclass: organizationalUnit
9+
ou: people
10+
11+
dn: uid=baeldung,ou=people,dc=baeldung,dc=com
12+
objectclass: top
13+
objectclass: person
14+
objectclass: organizationalPerson
15+
objectclass: inetOrgPerson
16+
cn: Jim Beam
17+
sn: Beam
18+
uid: baeldung
19+
userPassword: password
20+
21+
dn: cn=admin,ou=groups,dc=baeldung,dc=com
22+
objectclass: top
23+
objectclass: groupOfNames
24+
cn: admin
25+
member: uid=baeldung,ou=people,dc=baeldung,dc=com
26+
27+
dn: cn=user,ou=groups,dc=baeldung,dc=com
28+
objectclass: top
29+
objectclass: groupOfNames
30+
cn: user
31+
member: uid=baeldung,ou=people,dc=baeldung,dc=com

0 commit comments

Comments
 (0)