CAS Part 1
Signed-off-by: Marcin Woźniak <y0rune@aol.com>
This commit is contained in:
parent
b6c2e43975
commit
3ebfda5316
@ -24,9 +24,11 @@ public class User {
|
||||
private String name;
|
||||
private String surname;
|
||||
private String email;
|
||||
private String usosId;
|
||||
private UserRoles role;
|
||||
private String token;
|
||||
private Timestamp tokenUsageDate;
|
||||
|
||||
|
||||
public User() {
|
||||
}
|
||||
@ -46,6 +48,29 @@ public class User {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
/*
|
||||
* User
|
||||
*
|
||||
* @param name name given to the user
|
||||
* @param surname surname given to the user
|
||||
* @param email mail given to the user
|
||||
* @param usosId id in the USOS system
|
||||
* @param role role given to the user
|
||||
*/
|
||||
public User(String name, String surname, String mail, String usosId, UserRoles role){
|
||||
this(name,surname,mail,role);
|
||||
this.usosId = usosId;
|
||||
}
|
||||
|
||||
/*
|
||||
* getusosId
|
||||
*
|
||||
* @return usosId
|
||||
*/
|
||||
public String getUsosId() {
|
||||
return usosId;
|
||||
}
|
||||
|
||||
/*
|
||||
* getEmail
|
||||
*
|
||||
|
@ -50,4 +50,7 @@ public interface UserRepository extends JpaRepository<User, Long> {
|
||||
|
||||
@Query("FROM User WHERE (name LIKE %?1% OR surname LIKE %?1%) AND role=?2")
|
||||
List<User> searchForUsers(@Param("query") String query, @Param("role") UserRoles role);
|
||||
|
||||
@Query("FROM User WHERE usosId = ?1")
|
||||
Optional<User> getByUsosId(@Param("usosId") String usosId);
|
||||
}
|
@ -24,6 +24,31 @@ public class UserService {
|
||||
super();
|
||||
}
|
||||
|
||||
public User checkForUser(String email, String usosId) {
|
||||
if (usosId == null) {
|
||||
Optional <User> user = this.repo.getByAuthority(email.replace("\n", "").trim());
|
||||
if (user.isPresent()){
|
||||
return user.get();
|
||||
}
|
||||
else {
|
||||
final User newUser = new User(null,null,email.replace("\n", "").trim(),UserRoles.STUDENT);
|
||||
this.repo.save(newUser);
|
||||
return newUser;
|
||||
}
|
||||
}
|
||||
else {
|
||||
Optional <User> user = this.repo.getByUsosId(usosId.replace("\n", "").trim());
|
||||
if (user.isPresent()){
|
||||
return user.get();
|
||||
}
|
||||
else {
|
||||
final User newUser = new User(null,null,email.replace("\n", "").trim(),usosId,UserRoles.STUDENT);
|
||||
this.repo.save(newUser);
|
||||
return newUser;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String login(String authority) throws UserNotFoundException {
|
||||
User user = this.repo.getByAuthority(authority.replace("\n", "").trim())
|
||||
.orElseThrow(() -> new UserNotFoundException("Can not find user with given authority"));
|
||||
|
@ -49,13 +49,5 @@ public class App {
|
||||
mac.setSurname("Głowacki");
|
||||
mac.setRole(UserRoles.STUDENT);
|
||||
this.userService.save(mac);
|
||||
|
||||
User mar = new User();
|
||||
mar.setEmail("marwoz16@st.amu.edu.pl");
|
||||
mar.setName("Marcin");
|
||||
mar.setSurname("Woźniak");
|
||||
mar.setRole(UserRoles.ADMIN);
|
||||
this.userService.save(mar);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,9 @@ public class TokenController {
|
||||
|
||||
try {
|
||||
CasUserIdentity casUserIdentity = validator.validate();
|
||||
String authority = casUserIdentity.getEmail();
|
||||
String usosId = casUserIdentity.getUsosId();
|
||||
String authority = casUserIdentity.getEmail();
|
||||
this.userService.checkForUser(authority, usosId);
|
||||
String token = this.userService.login(authority);
|
||||
return new ResponseEntity<>(token, HttpStatus.OK);
|
||||
} catch (CasValidationExcepiton e) {
|
||||
|
Loading…
Reference in New Issue
Block a user