--- /dev/null
+/*****************************************************************************
+* Copyright Igor Barma, Eric Brun, Alexandre Desoubeaux, Christian Martel,
+* (2 décembre 2008)
+*
+* Ce logiciel est un programme informatique servant à l'évaluation des
+* compétences.
+*
+* Ce logiciel est régi par la licence CeCILL soumise au droit français et
+* respectant les principes de diffusion des logiciels libres. Vous pouvez
+* utiliser, modifier et/ou redistribuer ce programme sous les conditions
+* de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
+* sur le site "http://www.cecill.info".
+*
+* En contrepartie de l'accessibilité au code source et des droits de copie,
+* de modification et de redistribution accordés par cette licence, il n'est
+* offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
+* seule une responsabilité restreinte pèse sur l'auteur du programme, le
+* titulaire des droits patrimoniaux et les concédants successifs.
+*
+* A cet égard l'attention de l'utilisateur est attirée sur les risques
+* associés au chargement, à l'utilisation, à la modification et/ou au
+* développement et à la reproduction du logiciel par l'utilisateur étant
+* donné sa spécificité de logiciel libre, qui peut le rendre complexe à
+* manipuler et qui le réserve donc à des développeurs et des professionnels
+* avertis possédant des connaissances informatiques approfondies. Les
+* utilisateurs sont donc invités à charger et tester l'adéquation du
+* logiciel à leurs besoins dans des conditions permettant d'assurer la
+* sécurité de leurs systèmes et ou de leurs données et, plus généralement,
+* à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
+*
+* Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
+* pris connaissance de la licence CeCILL, et que vous en avez accepté les
+* termes.
+*******************************************************************************/
+package com.pentila.jackrabbit.auth;
+
+import org.springframework.dao.DataAccessException;
+import org.springframework.security.GrantedAuthority;
+import org.springframework.security.GrantedAuthorityImpl;
+import org.springframework.security.context.SecurityContext;
+import org.springframework.security.context.SecurityContextHolder;
+import org.springframework.security.userdetails.UserDetails;
+import org.springframework.security.userdetails.UserDetailsService;
+import org.springframework.security.userdetails.UsernameNotFoundException;
+
+
+
+/**
+ * The Class CasAuth.
+ */
+public class CasAuth implements UserDetailsService{
+
+
+ String role = "ROLE_MEMBER";
+
+ private static LdapDAO ldapDAO;
+
+ public CasAuth(){
+
+ }
+
+
+ public CasAuth(String role){
+ super();
+ this.role = role;
+ }
+
+ /**
+ * Gets the current user.
+ *
+ * @return the current user
+ */
+ public UserDetails getCurrentUser() {
+ SecurityContext securityContext = SecurityContextHolder.getContext();
+ return (UserDetails) securityContext.getAuthentication().getPrincipal();
+ }
+
+ /**
+ * Gets the user name.
+ *
+ * @return the user name
+ */
+ public String getUserName() {
+ return this.getCurrentUser().getUsername();
+ }
+
+
+
+ public UserDetails loadUserByUsername(String login)
+ throws UsernameNotFoundException, DataAccessException {
+ //String login = getUserName();
+
+
+ String internalUserId = login;
+
+ if (ldapDAO != null){
+
+ LdapUser u = ldapDAO.getUserFromLogin(login);
+
+ if (u == null){
+ throw new UsernameNotFoundException(login);
+ }
+
+ internalUserId = u.getId();
+
+ }
+ GrantedAuthority[] arrayAuths = new GrantedAuthority[1];
+ int index = 0;
+
+ arrayAuths[index++] = new GrantedAuthorityImpl(this.role);
+
+ return new org.springframework.security.userdetails.User(internalUserId, "",
+ true, true, true, true, arrayAuths);
+
+
+ }
+
+
+ public static LdapDAO getLdapDAO() {
+ return ldapDAO;
+ }
+
+
+ public void setLdapDAO(LdapDAO ldapDAO) {
+ CasAuth.ldapDAO = ldapDAO;
+ }
+
+}