Kotlin – Spring Security JDBC Authentication – SpringBoot + MySQL + Bootstrap

In the tutorial, JavaSampleApproach will show you how to create a Kotlin Spring Security JDBC Authentication with SpringBoot + MySQL + Bootstrap.

I. Technologies

– Kotlin 1.2.20
– Apache Maven 3.5.2
– Spring Tool Suite – Version 3.9.0.RELEASE
– Spring Boot – 1.5.10.RELEASE
– Bootstrap
– MySQL

II. Goal

We create a Kotlin MVC Web Application as below:

Kotlin Spring Security JDBC Authentication - project structure

With 5 urls:

– ‘/’: access with everyone.

Kotlin Spring Security JDBC Authentication - home pagepng

– ‘/user’: must authenticate and be accessed with user ROLE {USER, ADMIN}

Kotlin Spring Security JDBC Authentication - users

– ‘/admin’: accessed by user with role Admin

Kotlin Spring Security JDBC Authentication - admin

– ‘/login’: login page

Kotlin Spring Security JDBC Authentication - login

– ‘/403’: HTTP Error 403 Forbidden

Kotlin Spring Security JDBC Authentication - access-denied

We create 2 MySQL tables for 2 users (username/password):
– jack/jack has 2 roles {USER, ADMIN}
– peter/peter has 1 role USER

Kotlin Spring Security JDBC Authentication - tables

-> jack/jack can access both pages {user.html, admin.html}. While peter/peter just accesses 1 page user.html.

III. Implementation

– Create Kotlin Spring Boot project
– Create Controller
– Create View Pages
– Configure Database
– Configure WebSecurity

1. Create Kotlin Spring Boot project

Use SpringToolSuite to create a Kotlin SpringBoot project with below dependencies:

2. Create Controller

3. Create View Pages
home.html

user.html

admin.html

login.html

403.html

4. Configure Database Tables

Open application.properties, configure database properties:

Create user table with 3 columns:

Create user_roles table:

Insert data to 2 tables:

5. Configure WebSecurity

Create a SecurityConfig class that extends WebSecurityConfigurerAdapter. Then override method configAuthentication(AuthenticationManagerBuilder auth) to setup SQL queries for users & roles. And override configure(HttpSecurity http) to customize http requests.

IV. SourceCode

KotlinSpringSecurityJDBCAuthentication

By JavaSampleApproach | February 14, 2018.


Related Posts


Got Something To Say:

Your email address will not be published. Required fields are marked *

*