diff --git a/Poseiden-skeleton/pom.xml b/Poseiden-skeleton/pom.xml
index a7dcbc04dc..3f43846ad0 100644
--- a/Poseiden-skeleton/pom.xml
+++ b/Poseiden-skeleton/pom.xml
@@ -22,7 +22,7 @@
UTF-8
UTF-8
- 1.8
+ 11
@@ -31,18 +31,49 @@
spring-boot-starter-test
test
+
+
+ org.springframework.data
+ spring-data-jpa
+
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.hibernate
+ hibernate-core
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
org.springframework.boot
spring-boot-starter-web
+
org.springframework.boot
spring-boot-starter-thymeleaf
+
+ org.thymeleaf
+ thymeleaf
+
+
+ org.thymeleaf
+ thymeleaf-spring5
+
+
+ org.springframework.boot
+ spring-boot-starter-log4j2
+
org.springframework.boot
spring-boot-starter-security
@@ -52,6 +83,16 @@
spring-boot-devtools
true
+
+ io.springfox
+ springfox-swagger2
+ 2.5.0
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.5.0
+
mysql
mysql-connector-java
@@ -61,7 +102,6 @@
h2
-
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java
index f53aeb0fba..5f852c2f34 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java
@@ -1,12 +1,30 @@
package com.nnk.springboot;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
-@SpringBootApplication
+@EnableSwagger2
+@ComponentScan(basePackages = {"com.nnk.springboot.repositories"})
+@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class})
public class Application {
+
+ public final static Logger LOG = LogManager.getLogger(Application.class.getName());
+
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
+
+
+ LOG.info("This is Info Log");
+
+
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/config/SecurityConfig.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/config/SecurityConfig.java
new file mode 100644
index 0000000000..0b4715d62f
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/config/SecurityConfig.java
@@ -0,0 +1,56 @@
+package com.nnk.springboot.config;
+
+import javax.sql.DataSource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig extends WebSecurityConfigurerAdapter {
+
+ @Autowired
+ private DataSource dataSource;
+
+ @Autowired
+ public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
+
+ auth.jdbcAuthentication()
+ .dataSource(dataSource)
+ .passwordEncoder(passwordEncoder());
+ }
+
+
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+
+ http.authorizeRequests()
+ .antMatchers("/bidList/**", "/curvePoint/**", "/rating/**", "/ruleName/**", "/trade/**").hasAnyAuthority("USER")
+ .antMatchers("/user/**").permitAll()
+ .and()
+ .formLogin()
+ .loginPage("/login")
+ .defaultSuccessUrl("/bidList/list")
+ .and()
+ .logout()
+ .logoutUrl("/app-logout")
+ .logoutSuccessUrl("/")
+ .permitAll();
+
+ }
+
+
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+
+ }
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/config/SwaggerConfig.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/config/SwaggerConfig.java
new file mode 100644
index 0000000000..a326274121
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/config/SwaggerConfig.java
@@ -0,0 +1,22 @@
+package com.nnk.springboot.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+@Configuration
+public class SwaggerConfig {
+
+ @Bean
+ public Docket api() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .select()
+ .apis(RequestHandlerSelectors.basePackage("controllers"))
+ .paths(PathSelectors.any())
+ .build();
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java
index a31b9b53ca..ad8b7b8e4a 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java
@@ -1,6 +1,10 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.Application;
import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.repositories.BidListRepository;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -9,17 +13,23 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import java.time.LocalDateTime;
+
import javax.validation.Valid;
@Controller
public class BidListController {
// TODO: Inject Bid service
+
+ @Autowired
+ BidListRepository bidListRepository;
@RequestMapping("/bidList/list")
public String home(Model model)
{
// TODO: call service find all bids to show to the view
+ model.addAttribute("bidList", bidListRepository.findAll());
return "bidList/list";
}
@@ -31,12 +41,21 @@ public String addBidForm(BidList bid) {
@PostMapping("/bidList/validate")
public String validate(@Valid BidList bid, BindingResult result, Model model) {
// TODO: check data valid and save to db, after saving return bid list
+ if (!result.hasErrors()) {
+ bidListRepository.save(bid);
+ Application.LOG.info("bid id: " + bid.getBidListId() + " Was save at: " + LocalDateTime.now());
+ model.addAttribute("bidList", bidListRepository.findAll());
+ return "redirect:/bidList/list";
+ }
return "bidList/add";
}
@GetMapping("/bidList/update/{id}")
public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
// TODO: get Bid by Id and to model then show to the form
+ BidList bid = bidListRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid bid Id:" + id));
+ Application.LOG.info("bid id: " + bid.getBidListId() + " Was show in form at: " + LocalDateTime.now());
+ model.addAttribute("bid", bid);
return "bidList/update";
}
@@ -44,12 +63,24 @@ public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
public String updateBid(@PathVariable("id") Integer id, @Valid BidList bidList,
BindingResult result, Model model) {
// TODO: check required fields, if valid call service to update Bid and return list Bid
- return "redirect:/bidList/list";
+ if (result.hasErrors()) {
+ return"bidList/update";
+ }
+
+ bidList.setBidListId(id);
+ bidListRepository.save(bidList);
+ Application.LOG.info("bid id: " + bidList.getBidListId() + " Was update at: " + LocalDateTime.now());
+ model.addAttribute("bidList", bidListRepository.findAll());
+ return "redirect:/bidList/list";
}
@GetMapping("/bidList/delete/{id}")
public String deleteBid(@PathVariable("id") Integer id, Model model) {
// TODO: Find Bid by Id and delete the bid, return to Bid list
- return "redirect:/bidList/list";
+ BidList bid = bidListRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid bid Id:" + id));
+ bidListRepository.delete(bid);
+ Application.LOG.info("bid id: " + bid.getBidListId() + " Was delete at: " + LocalDateTime.now());
+ model.addAttribute("bid", bidListRepository.findAll());
+ return "redirect:/bidList/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java
index db69caf549..da9acc3c7d 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java
@@ -1,6 +1,10 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.Application;
import com.nnk.springboot.domain.CurvePoint;
+import com.nnk.springboot.repositories.CurvePointRepository;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -9,17 +13,22 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import java.time.LocalDateTime;
+
import javax.validation.Valid;
@Controller
public class CurveController {
// TODO: Inject Curve Point service
+ @Autowired
+ CurvePointRepository curveRepository;
@RequestMapping("/curvePoint/list")
public String home(Model model)
{
// TODO: find all Curve Point, add to model
- return "curvePoint/list";
+ model.addAttribute("curves", curveRepository.findAll());
+ return "curvePoint/list";
}
@GetMapping("/curvePoint/add")
@@ -30,12 +39,21 @@ public String addBidForm(CurvePoint bid) {
@PostMapping("/curvePoint/validate")
public String validate(@Valid CurvePoint curvePoint, BindingResult result, Model model) {
// TODO: check data valid and save to db, after saving return Curve list
+ if (!result.hasErrors()) {
+ curveRepository.save(curvePoint);
+ Application.LOG.info("curvePoint id: " + curvePoint.getCurveId() + " Was save at: " + LocalDateTime.now());
+ model.addAttribute("curves", curveRepository.findAll());
+ return "redirect:/curvePoint/list";
+ }
return "curvePoint/add";
}
@GetMapping("/curvePoint/update/{id}")
public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
// TODO: get CurvePoint by Id and to model then show to the form
+ CurvePoint curve = curveRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid curvePoint Id:" + id));
+ Application.LOG.info("curvePoint id: " + curve.getCurveId() + " Was show in form at: " + LocalDateTime.now());
+ model.addAttribute("curve", curve);
return "curvePoint/update";
}
@@ -43,12 +61,25 @@ public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
public String updateBid(@PathVariable("id") Integer id, @Valid CurvePoint curvePoint,
BindingResult result, Model model) {
// TODO: check required fields, if valid call service to update Curve and return Curve list
- return "redirect:/curvePoint/list";
+ if (result.hasErrors()) {
+ return "curvePoint/update";
+
+ }
+
+ curvePoint.setId(id);
+ curveRepository.save(curvePoint);
+ Application.LOG.info("curvePoint id: " + curvePoint.getCurveId() + " Was update at: " + LocalDateTime.now());
+ model.addAttribute("curves", curveRepository.findAll());
+ return "redirect:/curvePoint/list";
}
@GetMapping("/curvePoint/delete/{id}")
public String deleteBid(@PathVariable("id") Integer id, Model model) {
// TODO: Find Curve by Id and delete the Curve, return to Curve list
- return "redirect:/curvePoint/list";
+ CurvePoint curve = curveRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid curvePoint Id:" + id));
+ curveRepository.delete(curve);
+ Application.LOG.info("curvePoint id: " + curve.getCurveId() + " Was delete at: " + LocalDateTime.now());
+ model.addAttribute("curves", curveRepository.findAll());
+ return "redirect:/curvePoint/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java
index ef0c657c72..56b184f5c0 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java
@@ -18,6 +18,7 @@ public class LoginController {
public ModelAndView login() {
ModelAndView mav = new ModelAndView();
mav.setViewName("login");
+ System.err.println("okay");
return mav;
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java
index 5e15e68fbc..f979dde050 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java
@@ -1,6 +1,10 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.Application;
import com.nnk.springboot.domain.Rating;
+import com.nnk.springboot.repositories.RatingRepository;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -9,17 +13,25 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import java.time.LocalDateTime;
+
import javax.validation.Valid;
@Controller
public class RatingController {
+
+
// TODO: Inject Rating service
+ @Autowired
+ RatingRepository ratingRepository;
+
@RequestMapping("/rating/list")
public String home(Model model)
{
// TODO: find all Rating, add to model
- return "rating/list";
+ model.addAttribute("rating", ratingRepository.findAll());
+ return "rating/list";
}
@GetMapping("/rating/add")
@@ -30,25 +42,47 @@ public String addRatingForm(Rating rating) {
@PostMapping("/rating/validate")
public String validate(@Valid Rating rating, BindingResult result, Model model) {
// TODO: check data valid and save to db, after saving return Rating list
- return "rating/add";
- }
+ if (!result.hasErrors()) {
+ ratingRepository.save(rating);
+ Application.LOG.info("rating id: " + rating.getId() + " Was save at: " + LocalDateTime.now());
+ model.addAttribute("rating", ratingRepository.findAll());
+ return "redirect:/rating/add";
+
+ }
+ return "rating/add";
+ }
@GetMapping("/rating/update/{id}")
public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
// TODO: get Rating by Id and to model then show to the form
- return "rating/update";
+ Rating rating = ratingRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid rating id:" + id));
+ Application.LOG.info("rating id: " + rating.getId() + " Was show in form at: " + LocalDateTime.now());
+ model.addAttribute("rating", rating);
+ return "rating/update";
}
@PostMapping("/rating/update/{id}")
public String updateRating(@PathVariable("id") Integer id, @Valid Rating rating,
BindingResult result, Model model) {
// TODO: check required fields, if valid call service to update Rating and return Rating list
- return "redirect:/rating/list";
+ if (result.hasErrors()) {
+ return "/rating/list";
+ }
+
+ rating.setId(id);
+ ratingRepository.save(rating);
+ Application.LOG.info("rating id: " + rating.getId() + " Was update at: " + LocalDateTime.now());
+ model.addAttribute("rating", ratingRepository.findAll());
+ return "redirect:/rating/list";
}
@GetMapping("/rating/delete/{id}")
public String deleteRating(@PathVariable("id") Integer id, Model model) {
// TODO: Find Rating by Id and delete the Rating, return to Rating list
- return "redirect:/rating/list";
+ Rating rating = ratingRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid rating Id:" + id));
+ ratingRepository.delete(rating);
+ Application.LOG.info("rating id: " + rating.getId() + " Was delete at: " + LocalDateTime.now());
+ model.addAttribute("rating", ratingRepository.findAll());
+ return "redirect:/rating/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java
index b9e72b1ba6..699ae10932 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java
@@ -1,6 +1,10 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.Application;
import com.nnk.springboot.domain.RuleName;
+import com.nnk.springboot.repositories.RuleNameRepository;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -9,16 +13,21 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import java.time.LocalDateTime;
+
import javax.validation.Valid;
@Controller
public class RuleNameController {
// TODO: Inject RuleName service
+ @Autowired
+ RuleNameRepository ruleRepository;
@RequestMapping("/ruleName/list")
public String home(Model model)
{
// TODO: find all RuleName, add to model
+ model.addAttribute("rule", ruleRepository.findAll());
return "ruleName/list";
}
@@ -30,25 +39,44 @@ public String addRuleForm(RuleName bid) {
@PostMapping("/ruleName/validate")
public String validate(@Valid RuleName ruleName, BindingResult result, Model model) {
// TODO: check data valid and save to db, after saving return RuleName list
- return "ruleName/add";
+ if (!result.hasErrors()) {
+ ruleRepository.save(ruleName);
+ Application.LOG.info("ruleName id: " + ruleName.getId() + " Was save at: " + LocalDateTime.now());
+ return "redirect:/ruleName/list";
+ }
+ return "ruleName/add";
}
@GetMapping("/ruleName/update/{id}")
public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
// TODO: get RuleName by Id and to model then show to the form
- return "ruleName/update";
+ RuleName ruleName = ruleRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid ruleName Id:" + id));
+ Application.LOG.info("ruleName id: " + ruleName.getId() + " Was show in form at: " + LocalDateTime.now());
+ model.addAttribute("rule", ruleName);
+ return "ruleName/update";
}
@PostMapping("/ruleName/update/{id}")
public String updateRuleName(@PathVariable("id") Integer id, @Valid RuleName ruleName,
BindingResult result, Model model) {
// TODO: check required fields, if valid call service to update RuleName and return RuleName list
- return "redirect:/ruleName/list";
+ if (result.hasErrors()) {
+ return "ruleName/update";
+ }
+ ruleName.setId(id);
+ ruleRepository.save(ruleName);
+ Application.LOG.info("ruleName id: " + ruleName.getId() + " Was update at: " + LocalDateTime.now());
+ model.addAttribute("rules", ruleRepository.findAll());
+ return "redirect:/ruleName/list";
}
@GetMapping("/ruleName/delete/{id}")
public String deleteRuleName(@PathVariable("id") Integer id, Model model) {
// TODO: Find RuleName by Id and delete the RuleName, return to Rule list
- return "redirect:/ruleName/list";
+ RuleName rule = ruleRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid ruleName Id:" + id));
+ ruleRepository.delete(rule);
+ Application.LOG.info("ruleName id: " + rule.getId() + " Was delete at: " + LocalDateTime.now());
+ model.addAttribute("rules", ruleRepository.findAll());
+ return "redirect:/ruleName/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java
index 4e667eec22..f708c9499d 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java
@@ -1,6 +1,10 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.Application;
import com.nnk.springboot.domain.Trade;
+import com.nnk.springboot.repositories.TradeRepository;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -9,16 +13,22 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import java.time.LocalDateTime;
+
import javax.validation.Valid;
@Controller
public class TradeController {
+
// TODO: Inject Trade service
+ @Autowired
+ TradeRepository tradeRepository;
@RequestMapping("/trade/list")
public String home(Model model)
{
// TODO: find all Trade, add to model
+ model.addAttribute("trade", tradeRepository.findAll());
return "trade/list";
}
@@ -30,25 +40,47 @@ public String addUser(Trade bid) {
@PostMapping("/trade/validate")
public String validate(@Valid Trade trade, BindingResult result, Model model) {
// TODO: check data valid and save to db, after saving return Trade list
+ if (!result.hasErrors()) {
+ tradeRepository.save(trade);
+ Application.LOG.info("trade id: " + trade.getTradeId() + " Was save at: " + LocalDateTime.now());
+ model.addAttribute("trade", tradeRepository.findAll());
+ return "redirect:/trade/add";
+ }
return "trade/add";
}
@GetMapping("/trade/update/{id}")
public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
// TODO: get Trade by Id and to model then show to the form
- return "trade/update";
+ Trade trade = tradeRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid trade Id:" + id));
+ Application.LOG.info("trade id: " + trade.getTradeId() + " Was show in form at: " + LocalDateTime.now());
+ model.addAttribute("trade", trade);
+ return "trade/update";
}
@PostMapping("/trade/update/{id}")
public String updateTrade(@PathVariable("id") Integer id, @Valid Trade trade,
BindingResult result, Model model) {
// TODO: check required fields, if valid call service to update Trade and return Trade list
- return "redirect:/trade/list";
+ if (result.hasErrors()) {
+ return "trade/update";
+ }
+
+ trade.setTradeId(id);
+ tradeRepository.save(trade);
+ Application.LOG.info("trade id: " + trade.getTradeId() + " Was update at: " + LocalDateTime.now());
+ model.addAttribute("trade", tradeRepository.findAll());
+ return "redirect:/trade/list";
}
@GetMapping("/trade/delete/{id}")
public String deleteTrade(@PathVariable("id") Integer id, Model model) {
+
// TODO: Find Trade by Id and delete the Trade, return to Trade list
- return "redirect:/trade/list";
+ Trade trade = tradeRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid trade Id:" + id));
+ tradeRepository.delete(trade);
+ Application.LOG.info("trade id: " + trade.getTradeId() + " Was delete at: " + LocalDateTime.now());
+ model.addAttribute("trade", tradeRepository.findAll());
+ return "redirect:/trade/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java
index 29e30be3d6..070722e972 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java
@@ -1,5 +1,6 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.Application;
import com.nnk.springboot.domain.User;
import com.nnk.springboot.repositories.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +13,8 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import java.time.LocalDateTime;
+
import javax.validation.Valid;
@Controller
@@ -37,6 +40,7 @@ public String validate(@Valid User user, BindingResult result, Model model) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
user.setPassword(encoder.encode(user.getPassword()));
userRepository.save(user);
+ Application.LOG.info("user id: " + user.getId() + " Was save at: " + LocalDateTime.now());
model.addAttribute("users", userRepository.findAll());
return "redirect:/user/list";
}
@@ -62,6 +66,7 @@ public String updateUser(@PathVariable("id") Integer id, @Valid User user,
user.setPassword(encoder.encode(user.getPassword()));
user.setId(id);
userRepository.save(user);
+ Application.LOG.info("user id: " + user.getId() + " Was update at: " + LocalDateTime.now());
model.addAttribute("users", userRepository.findAll());
return "redirect:/user/list";
}
@@ -70,6 +75,7 @@ public String updateUser(@PathVariable("id") Integer id, @Valid User user,
public String deleteUser(@PathVariable("id") Integer id, Model model) {
User user = userRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid user Id:" + id));
userRepository.delete(user);
+ Application.LOG.info("user id: " + user.getId() + " Was delete at: " + LocalDateTime.now());
model.addAttribute("users", userRepository.findAll());
return "redirect:/user/list";
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java
index 3a0e27efc8..9790c361e1 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java
@@ -4,12 +4,189 @@
import javax.persistence.*;
import javax.validation.constraints.Digits;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
import java.sql.Date;
import java.sql.Timestamp;
@Entity
@Table(name = "bidlist")
public class BidList {
+
+
+ public BidList() {}
+ public BidList(String account, String type, double bidQuantity) {
+ this.account = account;
+ this.type = type;
+ this.bidQuantity = bidQuantity;
+ }
+
+
+ @Id
+ @GeneratedValue(strategy= GenerationType.AUTO)
+ private Integer BidListId;
+ @NotBlank(message = "Account is mandatory")
+ private String account;
+ @NotBlank(message = "Type is mandatory")
+ private String type;
+ @NotNull(message = "BidQuantity is mandatory")
+ @Min(1)
+ private Double bidQuantity;
+ @Min(1)
+ private Double askQuantity;
+ private Double bid;
+ private Double ask;
+ private String benchmark;
+ private Timestamp bidListDate;
+ private String commentary;
+ private String security;
+ private String status;
+ private String trader;
+ private String book;
+ private String creationName;
+ private Timestamp creationDate;
+ private String revisionName;
+ private Timestamp revisionDate;
+ private String dealName;
+ private String dealType;
+ private String sourceListId;
+ private String side;
+
+
+ public Integer getBidListId() {
+ return BidListId;
+ }
+ public void setBidListId(Integer bidListId) {
+ BidListId = bidListId;
+ }
+ public String getAccount() {
+ return account;
+ }
+ public void setAccount(String account) {
+ this.account = account;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public Double getBidQuantity() {
+ return bidQuantity;
+ }
+ public void setBidQuantity(Double bidQuantity) {
+ this.bidQuantity = bidQuantity;
+ }
+ public Double getAskQuantity() {
+ return askQuantity;
+ }
+ public void setAskQuantity(Double askQuantity) {
+ this.askQuantity = askQuantity;
+ }
+ public Double getBid() {
+ return bid;
+ }
+ public void setBid(Double bid) {
+ this.bid = bid;
+ }
+ public Double getAsk() {
+ return ask;
+ }
+ public void setAsk(Double ask) {
+ this.ask = ask;
+ }
+ public String getBenchmark() {
+ return benchmark;
+ }
+ public void setBenchmark(String benchmark) {
+ this.benchmark = benchmark;
+ }
+ public Timestamp getBidListDate() {
+ return bidListDate;
+ }
+ public void setBidListDate(Timestamp bidListDate) {
+ this.bidListDate = bidListDate;
+ }
+ public String getCommentary() {
+ return commentary;
+ }
+ public void setCommentary(String commentary) {
+ this.commentary = commentary;
+ }
+ public String getSecurity() {
+ return security;
+ }
+ public void setSecurity(String security) {
+ this.security = security;
+ }
+ public String getStatus() {
+ return status;
+ }
+ public void setStatus(String status) {
+ this.status = status;
+ }
+ public String getTrader() {
+ return trader;
+ }
+ public void setTrader(String trader) {
+ this.trader = trader;
+ }
+ public String getBook() {
+ return book;
+ }
+ public void setBook(String book) {
+ this.book = book;
+ }
+ public String getCreationName() {
+ return creationName;
+ }
+ public void setCreationName(String creationName) {
+ this.creationName = creationName;
+ }
+ public Timestamp getCreationDate() {
+ return creationDate;
+ }
+ public void setCreationDate(Timestamp creationDate) {
+ this.creationDate = creationDate;
+ }
+ public String getRevisionName() {
+ return revisionName;
+ }
+ public void setRevisionName(String revisionName) {
+ this.revisionName = revisionName;
+ }
+ public Timestamp getRevisionDate() {
+ return revisionDate;
+ }
+ public void setRevisionDate(Timestamp revisionDate) {
+ this.revisionDate = revisionDate;
+ }
+ public String getDealName() {
+ return dealName;
+ }
+ public void setDealName(String dealName) {
+ this.dealName = dealName;
+ }
+ public String getDealType() {
+ return dealType;
+ }
+ public void setDealType(String dealType) {
+ this.dealType = dealType;
+ }
+ public String getSourceListId() {
+ return sourceListId;
+ }
+ public void setSourceListId(String sourceListId) {
+ this.sourceListId = sourceListId;
+ }
+ public String getSide() {
+ return side;
+ }
+ public void setSide(String side) {
+ this.side = side;
+ }
+
// TODO: Map columns in data table BIDLIST with corresponding java fields
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java
index 151f80d02f..9eedd574b1 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java
@@ -5,11 +5,74 @@
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Positive;
+
import java.sql.Timestamp;
@Entity
@Table(name = "curvepoint")
public class CurvePoint {
+
+
+ public CurvePoint() {}
+ //A voir !!
+ public CurvePoint(int id, double term, double value) {
+ this.id = id;
+ this.term = term;
+ this.value = value;
+
+ }
+
+ @Id
+ @GeneratedValue(strategy= GenerationType.AUTO)
+ private Integer id;
+ @NotNull(message = "CurveId is mandatory")
+ @Positive
+ private Integer curveId;
+ private Timestamp asOfDate;
+ @NotNull(message = "Term is mandatory")
+ private Double term;
+ @NotNull(message = "Value is mandatory")
+ private Double value;
+ private Timestamp creationDate;
+
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public Integer getCurveId() {
+ return curveId;
+ }
+ public void setCurveId(Integer curveId) {
+ this.curveId = curveId;
+ }
+ public Timestamp getAsOfDate() {
+ return asOfDate;
+ }
+ public void setAsOfDate(Timestamp asOfDate) {
+ this.asOfDate = asOfDate;
+ }
+ public Double getTerm() {
+ return term;
+ }
+ public void setTerm(Double term) {
+ this.term = term;
+ }
+ public Double getValue() {
+ return value;
+ }
+ public void setValue(Double value) {
+ this.value = value;
+ }
+ public Timestamp getCreationDate() {
+ return creationDate;
+ }
+ public void setCreationDate(Timestamp creationDate) {
+ this.creationDate = creationDate;
+ }
+
// TODO: Map columns in data table CURVEPOINT with corresponding java fields
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java
index 12d1be58c0..0f938685e4 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java
@@ -3,10 +3,65 @@
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Positive;
+
import java.sql.Timestamp;
@Entity
@Table(name = "rating")
public class Rating {
+
+ public Rating() {}
+ public Rating(String moodysRating, String sandPRating, String fitchRating, int orderNumber ) {
+
+ this.moodysRating = moodysRating;
+ this.sandPRating = sandPRating;
+ this.fitchRating = fitchRating;
+ this.orderNumber = orderNumber;
+
+ }
+
+ @GeneratedValue(strategy= GenerationType.AUTO)
+ private Integer id;
+ @NotBlank(message = "MoodysRating is mandatory")
+ private String moodysRating;
+ @NotBlank(message = "SandPRating is mandatory")
+ private String sandPRating;
+ @NotBlank(message = "FitchRating is mandatory")
+ private String fitchRating;
+ @NotNull(message = "OrderNumber is mandatory")
+ @Positive
+ private Integer orderNumber;
+
// TODO: Map columns in data table RATING with corresponding java fields
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getMoodysRating() {
+ return moodysRating;
+ }
+ public void setMoodysRating(String moodysRating) {
+ this.moodysRating = moodysRating;
+ }
+ public String getSandPRating() {
+ return sandPRating;
+ }
+ public void setSandPRating(String sandPRating) {
+ this.sandPRating = sandPRating;
+ }
+ public String getFitchRating() {
+ return fitchRating;
+ }
+ public void setFitchRating(String fitchRating) {
+ this.fitchRating = fitchRating;
+ }
+ public Integer getOrderNumber() {
+ return orderNumber;
+ }
+ public void setOrderNumber(Integer orderNumber) {
+ this.orderNumber = orderNumber;
+ }
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java
index b8ac970edf..d1c9ebda39 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java
@@ -7,5 +7,79 @@
@Entity
@Table(name = "rulename")
public class RuleName {
+
+ public RuleName() {}
+ public RuleName(String name, String description, String json, String template, String sqlStr, String sqlPart ) {
+
+ this.name = name;
+ this.description = description;
+ this.json = json;
+ this.template = template;
+ this.sqlStr = sqlStr;
+ this.sqlPart = sqlPart;
+
+ }
+
+
+
+ @Id
+ @GeneratedValue(strategy= GenerationType.AUTO)
+ private Integer id;
+ @NotBlank(message = "Name is mandatory")
+ private String name;
+ @NotBlank(message = "Description is mandatory")
+ private String description;
+ @NotBlank(message = "Json is mandatory")
+ private String json;
+ @NotBlank(message = "Template is mandatory")
+ private String template;
+ @NotBlank(message = "SqlStr is mandatory")
+ private String sqlStr;
+ @NotBlank(message = "SqlPart is mandatory")
+ private String sqlPart;
+
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public String getJson() {
+ return json;
+ }
+ public void setJson(String json) {
+ this.json = json;
+ }
+ public String getTemplate() {
+ return template;
+ }
+ public void setTemplate(String template) {
+ this.template = template;
+ }
+ public String getSqlStr() {
+ return sqlStr;
+ }
+ public void setSqlStr(String sqlStr) {
+ this.sqlStr = sqlStr;
+ }
+ public String getSqlPart() {
+ return sqlPart;
+ }
+ public void setSqlPart(String sqlPart) {
+ this.sqlPart = sqlPart;
+ }
+
// TODO: Map columns in data table RULENAME with corresponding java fields
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java
index b6db7c13b7..4115afefc9 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java
@@ -1,12 +1,178 @@
package com.nnk.springboot.domain;
import javax.persistence.*;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Positive;
+
import java.sql.Timestamp;
@Entity
@Table(name = "trade")
public class Trade {
- // TODO: Map columns in data table TRADE with corresponding java fields
+
+ public Trade() {}
+ public Trade(String account, String type) {
+ this.account = account;
+ this.type = type;
+ }
+
+ @Id
+ @GeneratedValue(strategy= GenerationType.AUTO)
+ private Integer tradeId;
+ @NotBlank(message = "Account is mandatory")
+ private String account;
+ @NotBlank(message = "Type is mandatory")
+ private String type;
+ @Min(1)
+ private Double buyQuantity;
+ @Min(1)
+ private Double sellQuantity;
+ @Positive
+ private Double buyPrice;
+ @Positive
+ private Double sellPrice;
+ private String benchmark;
+ private Timestamp tradeDate;
+ private String security;
+ private String status;
+ private String trader;
+ private String book;
+ private String creationName;
+ private Timestamp creationDate;
+ private String revisionName;
+ private Timestamp revisionDate;
+ private String dealName;
+ private String dealType;
+ private String sourceListId;
+ private String side;
+
+ // TODO: Map columns in data table TRADE with corresponding java fields
+ public Integer getTradeId() {
+ return tradeId;
+ }
+ public void setTradeId(Integer tradeId) {
+ this.tradeId = tradeId;
+ }
+ public String getAccount() {
+ return account;
+ }
+ public void setAccount(String account) {
+ this.account = account;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public Double getBuyQuantity() {
+ return buyQuantity;
+ }
+ public void setBuyQuantity(Double buyQuantity) {
+ this.buyQuantity = buyQuantity;
+ }
+ public Double getSellQuantity() {
+ return sellQuantity;
+ }
+ public void setSellQuantity(Double sellQuantity) {
+ this.sellQuantity = sellQuantity;
+ }
+ public Double getBuyPrice() {
+ return buyPrice;
+ }
+ public void setBuyPrice(Double buyPrice) {
+ this.buyPrice = buyPrice;
+ }
+ public Double getSellPrice() {
+ return sellPrice;
+ }
+ public void setSellPrice(Double sellPrice) {
+ this.sellPrice = sellPrice;
+ }
+ public String getBenchmark() {
+ return benchmark;
+ }
+ public void setBenchmark(String benchmark) {
+ this.benchmark = benchmark;
+ }
+ public Timestamp getTradeDate() {
+ return tradeDate;
+ }
+ public void setTradeDate(Timestamp tradeDate) {
+ this.tradeDate = tradeDate;
+ }
+ public String getSecurity() {
+ return security;
+ }
+ public void setSecurity(String security) {
+ this.security = security;
+ }
+ public String getStatus() {
+ return status;
+ }
+ public void setStatus(String status) {
+ this.status = status;
+ }
+ public String getTrader() {
+ return trader;
+ }
+ public void setTrader(String trader) {
+ this.trader = trader;
+ }
+ public String getBook() {
+ return book;
+ }
+ public void setBook(String book) {
+ this.book = book;
+ }
+ public String getCreationName() {
+ return creationName;
+ }
+ public void setCreationName(String creationName) {
+ this.creationName = creationName;
+ }
+ public Timestamp getCreationDate() {
+ return creationDate;
+ }
+ public void setCreationDate(Timestamp creationDate) {
+ this.creationDate = creationDate;
+ }
+ public String getRevisionName() {
+ return revisionName;
+ }
+ public void setRevisionName(String revisionName) {
+ this.revisionName = revisionName;
+ }
+ public Timestamp getRevisionDate() {
+ return revisionDate;
+ }
+ public void setRevisionDate(Timestamp revisionDate) {
+ this.revisionDate = revisionDate;
+ }
+ public String getDealName() {
+ return dealName;
+ }
+ public void setDealName(String dealName) {
+ this.dealName = dealName;
+ }
+ public String getDealType() {
+ return dealType;
+ }
+ public void setDealType(String dealType) {
+ this.dealType = dealType;
+ }
+ public String getSourceListId() {
+ return sourceListId;
+ }
+ public void setSourceListId(String sourceListId) {
+ this.sourceListId = sourceListId;
+ }
+ public String getSide() {
+ return side;
+ }
+ public void setSide(String side) {
+ this.side = side;
+ }
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java
index 2be0b8c4ab..058433cc2a 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java
@@ -1,7 +1,11 @@
package com.nnk.springboot.domain;
+
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
@Entity
@Table(name = "users")
@@ -12,6 +16,8 @@ public class User {
@NotBlank(message = "Username is mandatory")
private String username;
@NotBlank(message = "Password is mandatory")
+ @Size(min = 8, max = 256)
+ @Pattern(regexp = "?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}", message = "Password must have at least one capital letter, 8 characters one number and one symbol")
private String password;
@NotBlank(message = "FullName is mandatory")
private String fullname;
@@ -57,4 +63,5 @@ public String getRole() {
public void setRole(String role) {
this.role = role;
}
+
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java
index f74b94e51d..e5c4f116b5 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java
@@ -1,9 +1,11 @@
package com.nnk.springboot.repositories;
-import com.nnk.springboot.domain.BidList;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+import com.nnk.springboot.domain.BidList;
+@Repository
public interface BidListRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java
index b01751b53e..fca71f3416 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java
@@ -2,8 +2,10 @@
import com.nnk.springboot.domain.CurvePoint;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+@Repository
public interface CurvePointRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java
index 7ded405e6d..ded1e8a0ed 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java
@@ -2,7 +2,9 @@
import com.nnk.springboot.domain.Rating;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+@Repository
public interface RatingRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java
index 8053d1612e..a805586b44 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java
@@ -2,7 +2,8 @@
import com.nnk.springboot.domain.RuleName;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface RuleNameRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java
index e8da38af02..50e9b39a15 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java
@@ -2,7 +2,8 @@
import com.nnk.springboot.domain.Trade;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface TradeRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java
index b6a3363949..0a3b203e71 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java
@@ -5,8 +5,12 @@
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface UserRepository extends JpaRepository, JpaSpecificationExecutor {
+
+ User findByUsername(String username);
+
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/services/UserServices.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/services/UserServices.java
new file mode 100644
index 0000000000..a803211a55
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/services/UserServices.java
@@ -0,0 +1,41 @@
+package com.nnk.springboot.services;
+
+import java.util.Collections;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import com.nnk.springboot.domain.User;
+import com.nnk.springboot.repositories.UserRepository;
+
+@Service
+public class UserServices implements UserDetailsService {
+
+
+ @Autowired
+ UserRepository userRepository;
+
+ @Override
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+ // TODO Auto-generated method stub
+
+
+ User user = userRepository.findByUsername(username);
+
+ if (user == null) {
+
+ throw new UsernameNotFoundException(username);
+ }
+
+ GrantedAuthority grantedAuthority = new SimpleGrantedAuthority(user.getRole());
+ UserDetails userDetails = new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), Collections.singletonList(grantedAuthority));
+
+ return userDetails;
+ }
+
+}
diff --git a/Poseiden-skeleton/src/main/resources/application.properties b/Poseiden-skeleton/src/main/resources/application.properties
index 8b194cc76e..e5a427b6a2 100644
--- a/Poseiden-skeleton/src/main/resources/application.properties
+++ b/Poseiden-skeleton/src/main/resources/application.properties
@@ -2,10 +2,12 @@
logging.level.org.springframework=INFO
################### DataSource Configuration ##########################
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
-spring.datasource.password=
+spring.datasource.password=rootroot
+spring.sql.init.mode=always
################### Hibernate Configuration ##########################
diff --git a/Poseiden-skeleton/src/main/resources/banner.txt b/Poseiden-skeleton/src/main/resources/banner.txt
new file mode 100644
index 0000000000..7d199bf89d
--- /dev/null
+++ b/Poseiden-skeleton/src/main/resources/banner.txt
@@ -0,0 +1,8 @@
+ ________ ________ ________ _______ ___ ________ ________ ________ ___ ________ ________
+|\ __ \|\ __ \|\ ____\|\ ___ \ |\ \|\ ___ \|\ __ \|\ ___ \ |\ \|\ ___ \|\ ____\
+\ \ \|\ \ \ \|\ \ \ \___|\ \ __/|\ \ \ \ \_|\ \ \ \|\ \ \ \\ \ \ \ \ \ \ \\ \ \ \ \___|
+ \ \ ____\ \ \\\ \ \_____ \ \ \_|/_\ \ \ \ \ \\ \ \ \\\ \ \ \\ \ \ \ \ \ \ \\ \ \ \ \
+ \ \ \___|\ \ \\\ \|____|\ \ \ \_|\ \ \ \ \ \_\\ \ \ \\\ \ \ \\ \ \ \ \ \ \ \\ \ \ \ \____ ___
+ \ \__\ \ \_______\____\_\ \ \_______\ \__\ \_______\ \_______\ \__\\ \__\ \ \__\ \__\\ \__\ \_______\\__\
+ \|__| \|_______|\_________\|_______|\|__|\|_______|\|_______|\|__| \|__| \|__|\|__| \|__|\|_______\|__|
+ \|_________|
\ No newline at end of file
diff --git a/Poseiden-skeleton/src/main/resources/templates/bidList/add.html b/Poseiden-skeleton/src/main/resources/templates/bidList/add.html
index c0fb91a99e..365b89f620 100644
--- a/Poseiden-skeleton/src/main/resources/templates/bidList/add.html
+++ b/Poseiden-skeleton/src/main/resources/templates/bidList/add.html
@@ -18,6 +18,35 @@ Add New Bid
+
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/bidList/list.html b/Poseiden-skeleton/src/main/resources/templates/bidList/list.html
index 84a1d14a12..a4096ec418 100644
--- a/Poseiden-skeleton/src/main/resources/templates/bidList/list.html
+++ b/Poseiden-skeleton/src/main/resources/templates/bidList/list.html
@@ -38,6 +38,16 @@
+
+ |
+ |
+ |
+ |
+
+ Edit |
+ Delete
+ |
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/bidList/update.html b/Poseiden-skeleton/src/main/resources/templates/bidList/update.html
index 7786ebd1ff..839acb07ca 100644
--- a/Poseiden-skeleton/src/main/resources/templates/bidList/update.html
+++ b/Poseiden-skeleton/src/main/resources/templates/bidList/update.html
@@ -17,6 +17,35 @@ Update Bid
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/curvePoint/add.html b/Poseiden-skeleton/src/main/resources/templates/curvePoint/add.html
index 28d17cb645..8529262357 100644
--- a/Poseiden-skeleton/src/main/resources/templates/curvePoint/add.html
+++ b/Poseiden-skeleton/src/main/resources/templates/curvePoint/add.html
@@ -18,7 +18,35 @@ Add New Curve Point
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/curvePoint/list.html b/Poseiden-skeleton/src/main/resources/templates/curvePoint/list.html
index 469836149b..e0bdbf215b 100644
--- a/Poseiden-skeleton/src/main/resources/templates/curvePoint/list.html
+++ b/Poseiden-skeleton/src/main/resources/templates/curvePoint/list.html
@@ -38,6 +38,16 @@
+
+ |
+ |
+ |
+ |
+
+ Edit
+ Delete
+ |
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/rating/add.html b/Poseiden-skeleton/src/main/resources/templates/rating/add.html
index 8090e5382e..234ee190e9 100644
--- a/Poseiden-skeleton/src/main/resources/templates/rating/add.html
+++ b/Poseiden-skeleton/src/main/resources/templates/rating/add.html
@@ -18,7 +18,41 @@ Add New Rating
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/rating/list.html b/Poseiden-skeleton/src/main/resources/templates/rating/list.html
index bfbb403b84..bf9ffbab3b 100644
--- a/Poseiden-skeleton/src/main/resources/templates/rating/list.html
+++ b/Poseiden-skeleton/src/main/resources/templates/rating/list.html
@@ -39,6 +39,17 @@
+
+ |
+ |
+ |
+ |
+ |
+
+ Edit
+ Delete
+ |
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/rating/update.html b/Poseiden-skeleton/src/main/resources/templates/rating/update.html
index 1e1914100a..a5828c6cc1 100644
--- a/Poseiden-skeleton/src/main/resources/templates/rating/update.html
+++ b/Poseiden-skeleton/src/main/resources/templates/rating/update.html
@@ -18,6 +18,42 @@ Update Rating
+
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/ruleName/add.html b/Poseiden-skeleton/src/main/resources/templates/ruleName/add.html
index afb0c2730b..90789782ac 100644
--- a/Poseiden-skeleton/src/main/resources/templates/ruleName/add.html
+++ b/Poseiden-skeleton/src/main/resources/templates/ruleName/add.html
@@ -18,7 +18,56 @@ Add New Rule
+
+
+
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/ruleName/list.html b/Poseiden-skeleton/src/main/resources/templates/ruleName/list.html
index 2ad3868e82..6b30c7295c 100644
--- a/Poseiden-skeleton/src/main/resources/templates/ruleName/list.html
+++ b/Poseiden-skeleton/src/main/resources/templates/ruleName/list.html
@@ -41,6 +41,19 @@
+
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+ Edit
+ Delete
+ |
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/ruleName/update.html b/Poseiden-skeleton/src/main/resources/templates/ruleName/update.html
index 34e6c3cc60..12ed33afcb 100644
--- a/Poseiden-skeleton/src/main/resources/templates/ruleName/update.html
+++ b/Poseiden-skeleton/src/main/resources/templates/ruleName/update.html
@@ -18,7 +18,56 @@ Update New Rule
+
+
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/trade/add.html b/Poseiden-skeleton/src/main/resources/templates/trade/add.html
index 6fafa08c01..9cac354c00 100644
--- a/Poseiden-skeleton/src/main/resources/templates/trade/add.html
+++ b/Poseiden-skeleton/src/main/resources/templates/trade/add.html
@@ -18,7 +18,35 @@ Add New Trade
+
+
+
+
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/trade/list.html b/Poseiden-skeleton/src/main/resources/templates/trade/list.html
index 2a247fa7da..822acad26d 100644
--- a/Poseiden-skeleton/src/main/resources/templates/trade/list.html
+++ b/Poseiden-skeleton/src/main/resources/templates/trade/list.html
@@ -38,6 +38,16 @@
+
+ |
+ |
+ |
+ |
+
+ Edit |
+ Delete
+ |
+
diff --git a/Poseiden-skeleton/src/main/resources/templates/trade/update.html b/Poseiden-skeleton/src/main/resources/templates/trade/update.html
index f4bbc52592..6032f7b1a0 100644
--- a/Poseiden-skeleton/src/main/resources/templates/trade/update.html
+++ b/Poseiden-skeleton/src/main/resources/templates/trade/update.html
@@ -17,6 +17,35 @@ Update Trade
+
+
+
+
+