diff --git a/YACOSWeb/WebContent/WEB-INF/applicationContextAcegi.xml b/YACOSWeb/WebContent/WEB-INF/applicationContextAcegi.xml
index 32b44ad..1e2a196 100644
--- a/YACOSWeb/WebContent/WEB-INF/applicationContextAcegi.xml
+++ b/YACOSWeb/WebContent/WEB-INF/applicationContextAcegi.xml
@@ -42,12 +42,6 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schem
-
-
-
-
-
-
@@ -66,6 +60,12 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schem
+
+
+
+
+
diff --git a/YACOSWeb/src/org/yacos/auth/UserDetails.java b/YACOSWeb/src/org/yacos/auth/UserDetails.java
index babbf74..f689f91 100644
--- a/YACOSWeb/src/org/yacos/auth/UserDetails.java
+++ b/YACOSWeb/src/org/yacos/auth/UserDetails.java
@@ -59,7 +59,6 @@ public class UserDetails implements org.acegisecurity.userdetails.UserDetails {
authorities[i] = new GrantedAuthorityImpl("ROLE_"+rolesList.get(i).getType().name());
}
}
-
return (GrantedAuthority[]) authorities;
}
diff --git a/YACOSWeb/src/org/yacos/web/PCmember/controller/ChoosePreferenceController.java b/YACOSWeb/src/org/yacos/web/PCmember/controller/ChoosePreferenceController.java
index b038d75..9a84663 100644
--- a/YACOSWeb/src/org/yacos/web/PCmember/controller/ChoosePreferenceController.java
+++ b/YACOSWeb/src/org/yacos/web/PCmember/controller/ChoosePreferenceController.java
@@ -45,7 +45,7 @@ public class ChoosePreferenceController extends SimpleFormController {
// TODO : mock object, replace with real user management
User toto = userManager.getUser("toto");
if(toto == null){
- toto = userManager.addUser("toto", "toto", "Toto", "Toto", "Toto corp.", "toto@totocorp.com");
+ toto = userManager.addUser("toto",User.hashPassword("toto"), "Toto", "Toto", "Toto corp.", "toto@totocorp.com");
}
ArrayList preferencesList = new ArrayList();
Preference pref;
diff --git a/YACOSWeb/src/org/yacos/web/PCmember/controller/EvaluationController.java b/YACOSWeb/src/org/yacos/web/PCmember/controller/EvaluationController.java
index 016fd6e..d4343f9 100644
--- a/YACOSWeb/src/org/yacos/web/PCmember/controller/EvaluationController.java
+++ b/YACOSWeb/src/org/yacos/web/PCmember/controller/EvaluationController.java
@@ -114,7 +114,7 @@ public class EvaluationController extends SimpleFormController {
System.out.println("le title est: "+article.getTitle());
User toto = userManager.getUser("toto");
if(toto == null){
- toto = userManager.addUser("toto", "toto", "Toto", "Toto", "Toto corp.", "toto@totocorp.com");
+ toto = userManager.addUser("toto",User.hashPassword("toto"), "Toto", "Toto", "Toto corp.", "toto@totocorp.com");
}
Report rpt =new Report(commentPCMember,commentAuthor,listeRating,toto,article);
diff --git a/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java b/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java
index 294424a..c5a1027 100644
--- a/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java
+++ b/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java
@@ -95,6 +95,12 @@ public class AddConferenceController extends AbstractWizardFormController {
listPersonBean.remove(truePerson);
listPersonFiltered.remove(truePerson);
}
+
+ public void addInvitation(String email){
+ PersonBean invitationBean = new PersonBean();
+ invitationBean.setLogin(email);
+ listPersonAdded.add(invitationBean);
+ }
public void deletePerson(PersonBean b) {
diff --git a/YACOSWeb/src/org/yacos/web/system/controller/SUserRegistrationController.java b/YACOSWeb/src/org/yacos/web/system/controller/SUserRegistrationController.java
index 0349832..e7ab640 100644
--- a/YACOSWeb/src/org/yacos/web/system/controller/SUserRegistrationController.java
+++ b/YACOSWeb/src/org/yacos/web/system/controller/SUserRegistrationController.java
@@ -10,6 +10,8 @@ import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;
+import org.yacos.core.exceptions.PKAlreadyUsedException;
+import org.yacos.core.exceptions.UserEMailAlreadyExistsException;
import org.yacos.core.users.IUserManager;
import org.yacos.core.users.User;
import org.yacos.web.system.form.FormUser;
@@ -30,26 +32,28 @@ public class SUserRegistrationController extends SimpleFormController {
*/
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
- HttpServletResponse response, Object command, BindException errors)
- throws Exception {
+ HttpServletResponse response, Object command, BindException errors) {
FormUser userCommand = (FormUser) command;
// Tries to retrieve the current user : case of user modification
User user = SessionService.getInstance().getCurrentUser();
- if( (userCommand.getIsNew()) && (userManager.getUser(userCommand.getLogin()) != null)){
- errors.rejectValue("login", "form.register.error.alreadyExists");
- return new ModelAndView(new RedirectView(getFormView()));
- }
-
if( userCommand.getIsNew() ){
- userManager.addUser(
- userCommand.getLogin(),
- userCommand.getPassword(),
- userCommand.getFirstName(),
- userCommand.getLastName(),
- userCommand.getOrganization(),
- userCommand.getEmail());
+ try {
+ userManager.addUser(
+ userCommand.getLogin(),
+ User.hashPassword(userCommand.getPassword()),
+ userCommand.getFirstName(),
+ userCommand.getLastName(),
+ userCommand.getOrganization(),
+ userCommand.getEmail());
+ } catch (PKAlreadyUsedException e) {
+ errors.rejectValue("login", "form.register.error.alreadyExists");
+ return new ModelAndView(new RedirectView(getFormView()));
+ } catch (UserEMailAlreadyExistsException e) {
+ errors.rejectValue("email", "form.register.error.alreadyExists");
+ return new ModelAndView(new RedirectView(getFormView()));
+ }
} else {
user.setEmail(userCommand.getEmail());
user.setFirstName(userCommand.getFirstName());
diff --git a/YACOSWeb/src/org/yacos/web/system/session/SessionService.java b/YACOSWeb/src/org/yacos/web/system/session/SessionService.java
index c486eaa..eacfde1 100644
--- a/YACOSWeb/src/org/yacos/web/system/session/SessionService.java
+++ b/YACOSWeb/src/org/yacos/web/system/session/SessionService.java
@@ -7,7 +7,10 @@ import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContextHolder;
+import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.DaoAuthenticationProvider;
+import org.acegisecurity.providers.encoding.ShaPasswordEncoder;
+import org.acegisecurity.userdetails.UserDetails;
import org.springframework.web.util.WebUtils;
import org.yacos.auth.UserDetailsService;
import org.yacos.core.conferences.Conference;
@@ -107,9 +110,12 @@ public class SessionService {
request.setAttribute("currentConference", currentConference);
// Refreshing user credentials
Authentication currentAuthentication = SecurityContextHolder.getContext().getAuthentication();
- DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
- authProvider.setUserDetailsService(new UserDetailsService());
- SecurityContextHolder.getContext().setAuthentication(authProvider.authenticate(currentAuthentication));
+ if(currentAuthentication instanceof UsernamePasswordAuthenticationToken){
+ DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
+ authProvider.setPasswordEncoder(new ShaPasswordEncoder(256));
+ authProvider.setUserDetailsService(new UserDetailsService());
+ SecurityContextHolder.getContext().setAuthentication(authProvider.authenticate(currentAuthentication));
+ }
}
/**