Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/
8 changes: 8 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"java.configuration.updateBuildConfiguration": "interactive",
"java.compile.nullAnalysis.mode": "disabled",
"java.configuration.runtimes": [],
"debug.javascript.defaultRuntimeExecutable": {
"pwa-node": "node"
}
}
23 changes: 11 additions & 12 deletions Poseiden-skeleton/doc/data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -53,47 +53,46 @@ CREATE TABLE Trade (
)

CREATE TABLE CurvePoint (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
CurvePointId tinyint(4) NOT NULL AUTO_INCREMENT,
CurveId tinyint,
asOfDate TIMESTAMP,
term DOUBLE ,
value DOUBLE ,
creationDate TIMESTAMP ,

PRIMARY KEY (Id)
creationDate TIMESTAMP,
PRIMARY KEY(CurvePointId)
)

CREATE TABLE Rating (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
RatingId tinyint(4) NOT NULL AUTO_INCREMENT,
moodysRating VARCHAR(125),
sandPRating VARCHAR(125),
fitchRating VARCHAR(125),
orderNumber tinyint,

PRIMARY KEY (Id)
PRIMARY KEY (RatingId)
)

CREATE TABLE RuleName (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
RuleNameId tinyint(4) NOT NULL AUTO_INCREMENT,
name VARCHAR(125),
description VARCHAR(125),
json VARCHAR(125),
template VARCHAR(512),
sqlStr VARCHAR(125),
sqlPart VARCHAR(125),

PRIMARY KEY (Id)
PRIMARY KEY (RuleNameId)
)

CREATE TABLE Users (
Id tinyint(4) NOT NULL AUTO_INCREMENT,
UsersId tinyint(4) NOT NULL AUTO_INCREMENT,
username VARCHAR(125),
password VARCHAR(125),
fullname VARCHAR(125),
role VARCHAR(125),

PRIMARY KEY (Id)
PRIMARY KEY (UsersId)
)

insert into Users(fullname, username, password, role) values("Administrator", "admin", "$2a$10$pBV8ILO/s/nao4wVnGLrh.sa/rnr5pDpbeC4E.KNzQWoy8obFZdaa", "ADMIN")
insert into Users(fullname, username, password, role) values("User", "user", "$2a$10$pBV8ILO/s/nao4wVnGLrh.sa/rnr5pDpbeC4E.KNzQWoy8obFZdaa", "USER")
insert into Users(fullname, username, password, role) values("Administrator", "admin", "$2a$10$6n4h0PROT81sEhthIcc5R.y6BonwFkdIgrKvrHY60oPfPpO040KyW", "ADMIN")
insert into Users(fullname, username, password, role) values("User", "user", "$2a$10$K1eHIGsrBTjgtJpv/zAxeeAxz0iua92iY7g/gN0YlxNVZusUb.lD.", "USER")
55 changes: 35 additions & 20 deletions Poseiden-skeleton/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,59 +12,74 @@
<name>spring-boot-skeleton</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>17</java.version>
<java.version>21</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>3.1.0</version>
<version>3.3.2</version>
<scope>test</scope>
</dependency>
<!--
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.1.0</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->

<!--
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.0</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>3.3.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>3.1.0</version>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>3.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.3.230</version>

</dependency>

</dependencies>

<build>
Expand Down
102 changes: 0 additions & 102 deletions Poseiden-skeleton/spring-boot-skeleton.iml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.nnk.springboot.configurations;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.ProviderManager;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;

import com.nnk.springboot.domain.User;
import com.nnk.springboot.repositories.UserRepository;
import com.nnk.springboot.services.UserService;

@Configuration
@EnableWebSecurity
public class SecurityConfiguration {

private UserRepository userRepository;
//securing routes by authority
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http

.csrf(csrf->csrf.disable())
.authorizeHttpRequests(req->req
.requestMatchers("/admin/**").hasAuthority("ADMIN")
.requestMatchers("/bidList/list").hasAnyAuthority("ADMIN","USER")
.requestMatchers("/user/**").hasAnyAuthority("ADMIN")
.requestMatchers("/bidList/**").hasAuthority("USER")
.requestMatchers("/curvePoint/**").hasAuthority("USER")
.requestMatchers("/rating/**").hasAuthority("USER")
.requestMatchers("/ruleName/**").hasAuthority("USER")
.requestMatchers("/trade/**").hasAuthority("USER")
.requestMatchers("/css/**").permitAll()
.requestMatchers("/").hasAuthority("USER")
.anyRequest().denyAll()).formLogin(login->login.loginPage("/user/loginPage").permitAll()
.loginProcessingUrl("/login").usernameParameter("username").defaultSuccessUrl("/"))
.logout(logout->logout.logoutUrl("/app-logout").logoutSuccessUrl("/user/loginPage"))
.authenticationManager(authenticationProvider());
return http.build();
}
//configuring password encoder
@Bean
public PasswordEncoder passwordEncoder() {

return new BCryptPasswordEncoder();
}
//configuring authentication settings
@Bean
public ProviderManager authenticationProvider() {

List<AuthenticationProvider> authenticationProviderList = new ArrayList<>();
DaoAuthenticationProvider daoAuthenticationProvider=new DaoAuthenticationProvider();
daoAuthenticationProvider.setPasswordEncoder(passwordEncoder());
daoAuthenticationProvider.setUserDetailsService(userService(userRepository));
authenticationProviderList.add(daoAuthenticationProvider);
ProviderManager providerManager = new ProviderManager(authenticationProviderList);
return providerManager;
}
//adding initial admin user
//only admin can manage users
@Bean
public UserService userService(UserRepository userRepository) {
User user = new User();
user.setFullname("Admin");
user.setUsername("admin");
user.setPassword("AbC45678");
user.setRole("ADMIN");
userRepository.save(user);
return new UserService(userRepository,user);
}
}
Loading