Skip to content
Snippets Groups Projects
Commit 854466dd authored by Mirco Nasuti's avatar Mirco Nasuti
Browse files

user data

parent 3e75eabc
No related branches found
No related tags found
No related merge requests found
...@@ -75,33 +75,9 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { ...@@ -75,33 +75,9 @@ public class MIPApplication extends WebSecurityConfigurerAdapter {
@RequestMapping("/user") @RequestMapping("/user")
@ResponseBody @ResponseBody
public Principal user(Principal principal) { public Principal user(Principal principal) {
OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
Authentication userAuthentication = oAuth2Authentication.getUserAuthentication();
System.out.println("##############################");
System.out.println(userAuthentication.getDetails());
System.out.println("##############################");
return principal; return principal;
} }
private User principalToUser(Principal principal) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
org.hibernate.Query query = session.createQuery("from User where username= :username");
query.setString("username", principal.getName());
User user = (User) query.uniqueResult();
session.getTransaction().commit();
if(user == null)
{
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
user = new User(principal);
session.save(user);
session.getTransaction().commit();
}
return user;
}
@RequestMapping(value = "/articles", method = RequestMethod.GET) @RequestMapping(value = "/articles", method = RequestMethod.GET)
@ResponseBody @ResponseBody
public List<Article> getArticles() { public List<Article> getArticles() {
...@@ -161,7 +137,7 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { ...@@ -161,7 +137,7 @@ public class MIPApplication extends WebSecurityConfigurerAdapter {
@RequestMapping(value = "/articles", method = RequestMethod.POST) @RequestMapping(value = "/articles", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public Article postArticle(@RequestBody Article article, Principal principal) { public Article postArticle(@RequestBody Article article, Principal principal) {
User user = principalToUser(principal); User user = getUser(principal);
Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction(); session.beginTransaction();
article.setCreatedAt(new Date()); article.setCreatedAt(new Date());
...@@ -327,4 +303,29 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { ...@@ -327,4 +303,29 @@ public class MIPApplication extends WebSecurityConfigurerAdapter {
return repository; return repository;
} }
private String getUserInfos() {
OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
Authentication userAuthentication = oAuth2Authentication.getUserAuthentication();
System.out.println(userAuthentication.getDetails().toString());
return userAuthentication.getDetails().toString();
}
private User getUser(Principal principal) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
org.hibernate.Query query = session.createQuery("from User where username= :username");
query.setString("username", principal.getName());
User user = (User) query.uniqueResult();
session.getTransaction().commit();
if(user == null)
{
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
user = new User(getUserInfos());
session.save(user);
session.getTransaction().commit();
}
return user;
}
} }
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
package org.hbp.mip.model; package org.hbp.mip.model;
import javax.persistence.*; import javax.persistence.*;
import java.security.Principal;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Entity @Entity
@Table(name = "user_mip") @Table(name = "user_mip")
...@@ -39,10 +40,39 @@ public class User { ...@@ -39,10 +40,39 @@ public class User {
public User() { public User() {
} }
public User(Principal principal) public User(String userInfo)
{ {
this.username = principal.getName(); Pattern p;
this.fullname = this.username; Matcher m;
p = Pattern.compile("username=([\\w ]+)");
m = p.matcher(userInfo);
if (m.find()) {
System.out.println(m.group(1));
this.username = m.group(1);
}
p = Pattern.compile("displayName=([\\w ]+)");
m = p.matcher(userInfo);
if (m.find()) {
System.out.println(m.group(1));
this.fullname = m.group(1);
}
p = Pattern.compile("givenName=([\\w ]+)");
m = p.matcher(userInfo);
if (m.find()) {
System.out.println(m.group(1));
this.firstname = m.group(1);
}
p = Pattern.compile("familyName=([\\w ]+)");
m = p.matcher(userInfo);
if (m.find()) {
System.out.println(m.group(1));
this.lastname = m.group(1);
}
} }
public Long getId() { public Long getId() {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment