This application demonstrates the use of the Apache Shiro JDBC Realm
with MySQL Database
in a Java Web Application(JSF2.2)
- Authentication
- Authorization
- JDBC Realm
- RememberMe functionality
CREATE USER 'shiro_user'@'%' IDENTIFIED BY 'shiro';
GRANT ALL PRIVILEGES ON shiro.* TO 'shiro_user'@'%' WITH GRANT OPTION;
CREATE DATABASE `shiro`;
USE `shiro`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) COLLATE utf8_turkish_ci NOT NULL,
`password` varchar(100) COLLATE utf8_turkish_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username_UNIQUE` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci;
CREATE TABLE `userroles` (
`userID` int(11) NOT NULL,
`role` varchar(50) COLLATE utf8_turkish_ci NOT NULL,
PRIMARY KEY (`userID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci;
- hakdogan
- roles
admin
,guest
- password
12345
- roles
- guest
- roles
guest
- password
guest
- roles
- JDK 8 or later
- Maven 3.0.0 or later
- MySql 8.x.x
mvn clean install
mvn liberty:run
or
sh run.sh
docker-compose -f docker-compose.yml up --build
or
sh compose-up.sh
This option creates a MySql Server
with the database and user needed by the web application then runs together with the app.