diff --git a/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java b/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java
index 1a46cd4476f18b0f0c684f54aa3cf45a189e8c4e..6feaf4b6bb6e1f1efb96cca94f5c25cfef6500e5 100644
--- a/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java
+++ b/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java
@@ -18,6 +18,7 @@ import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.User;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 
@@ -53,10 +54,14 @@ public class JwtAuthenticationFilter extends UsernamePasswordAuthenticationFilte
   throws IOException, ServletException {
     User user = (User) auth.getPrincipal();
     Key key = KeyGenerator.generateKey();
+
+    // ! A modifier si gestion multi roles (cf UserDetailsService)
+    SimpleGrantedAuthority authority = (SimpleGrantedAuthority) user.getAuthorities().toArray()[0];
     
     String token = Jwts.builder()
       .setSubject(user.getUsername())
       .claim("username",user.getUsername())
+      .claim("role",authority.getAuthority())
       .setIssuedAt(new Date())
       .setExpiration(toDate(LocalDateTime.now().plusDays(1L)))
       .signWith(SignatureAlgorithm.HS512, key)
diff --git a/mozen/src/main/java/mozen/auth/JwtUserDetailsService.java b/mozen/src/main/java/mozen/auth/JwtUserDetailsService.java
index a6bc4da74f2149fd215a301d2a6380f126e02b02..56e3b531f881bde3db9d5ace75f9477d5d6f2201 100644
--- a/mozen/src/main/java/mozen/auth/JwtUserDetailsService.java
+++ b/mozen/src/main/java/mozen/auth/JwtUserDetailsService.java
@@ -1,8 +1,11 @@
 package mozen.auth;
 
-import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Set;
 
 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.User;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
@@ -20,7 +23,20 @@ public class JwtUserDetailsService implements UserDetailsService {
   public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
     mozen.model.User user = manager.getUserByUsername(username);
     if(user == null) throw new UsernameNotFoundException(username);
-    return new User(user.getUsername(), user.getPassword(), new ArrayList<>());
+    
+    Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
+    
+    /* 
+    // Gestion multi roles
+    // Plus propre (Transformer model.Role en Entity et model.User.role en liste de Role)
+    for(Role role : user.getRoles()){
+      grantedAuthorities.add(new SimpleGrantedAuthority(role.getName()));
+    }
+    */
+
+    grantedAuthorities.add(new SimpleGrantedAuthority(user.getRole().toString()));
+
+    return new User(user.getUsername(), user.getPassword(), grantedAuthorities);
   }
   
 }
\ No newline at end of file
diff --git a/mozen/src/main/java/mozen/business/UserManager.java b/mozen/src/main/java/mozen/business/UserManager.java
index 266da3d4c81949ebbc509e4c6ef852ad06ff8ccf..fe5a497d81472cd70aa7b8e46b2273412c63418f 100644
--- a/mozen/src/main/java/mozen/business/UserManager.java
+++ b/mozen/src/main/java/mozen/business/UserManager.java
@@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 
+import mozen.model.Role;
 import mozen.model.SignupMessage;
 import mozen.model.User;
 
@@ -22,7 +23,7 @@ public class UserManager implements IUserManager {
     u.setEmail(message.getEmail());
     u.setUsername(message.getUsername());
     u.setPassword(bCryptPasswordEncoder.encode(message.getPassword()));
-    u.setRole("DEFAULT");
+    u.setRole(Role.Default);
 
     dao.addUser(u);
     return u.getId();
diff --git a/mozen/src/main/java/mozen/model/Role.java b/mozen/src/main/java/mozen/model/Role.java
new file mode 100644
index 0000000000000000000000000000000000000000..1db11ea5b2a49f5bea6efe93938fd27ff183f19b
--- /dev/null
+++ b/mozen/src/main/java/mozen/model/Role.java
@@ -0,0 +1,5 @@
+package mozen.model;
+
+public enum Role {
+  Default, Admin
+}
\ No newline at end of file
diff --git a/mozen/src/main/java/mozen/model/User.java b/mozen/src/main/java/mozen/model/User.java
index b8db2c721aaf0fbebc887f5d10ac60990c943410..14330d254b7c627e1e60136a243d7850abda06f3 100644
--- a/mozen/src/main/java/mozen/model/User.java
+++ b/mozen/src/main/java/mozen/model/User.java
@@ -7,6 +7,8 @@ import javax.persistence.Basic;
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
@@ -52,7 +54,8 @@ public class User implements Serializable{
   @Basic
   @Column(nullable = false)
   @NotNull
-  private String role;
+  @Enumerated(EnumType.STRING)
+  private Role role;
   
   @Basic
   @OneToMany(mappedBy = "author", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@@ -62,7 +65,7 @@ public class User implements Serializable{
   public User() {
   }
 
-  public User(Long id, String username, String email, String password, String role, Set<Model> models) {
+  public User(Long id, String username, String email, String password, Role role, Set<Model> models) {
     this.id = id;
     this.username = username;
     this.email = email;
@@ -114,11 +117,11 @@ public class User implements Serializable{
   }
 
   @JsonIgnore
-  public String getRole() {
+  public Role getRole() {
     return this.role;
   }
 
-  public void setRole(String role) {
+  public void setRole(Role role) {
     this.role = role;
   }
 
diff --git a/mozen/src/main/java/mozen/utils/DatabaseFiller.java b/mozen/src/main/java/mozen/utils/DatabaseFiller.java
index 6754eac2bc8dc682e358bd5283b7404da5dc5f97..5d54c98d3098d6763b85fc7301e7c2f7f98958c7 100644
--- a/mozen/src/main/java/mozen/utils/DatabaseFiller.java
+++ b/mozen/src/main/java/mozen/utils/DatabaseFiller.java
@@ -13,6 +13,7 @@ import mozen.business.IModelDao;
 import mozen.business.IUserDao;
 import mozen.model.CustomLayer;
 import mozen.model.Model;
+import mozen.model.Role;
 import mozen.model.Tag;
 import mozen.model.TagCategory;
 import mozen.model.User;
@@ -37,13 +38,13 @@ public class DatabaseFiller {
     u1.setEmail("user1@email.com");
     u1.setPassword("1234");
     u1.setUsername("user 1");
-    u1.setRole("DEFAULT");
+    u1.setRole(Role.Default);
 
     User u2 = new User();
     u2.setEmail("user2@email.com");
     u2.setPassword("1234");
     u2.setUsername("user 2");
-    u2.setRole("ADMIN");
+    u2.setRole(Role.Admin);
 
     Model m1 = new Model();
     m1.setAuthor(u1);