package org.beanfuse.security.providers; import org.beanfuse.security.Authentication; import org.beanfuse.security.AuthenticationException; import org.beanfuse.security.User; import org.beanfuse.security.UserDetails; import org.beanfuse.security.service.UserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class AbstractAuthenticationProvider implements AuthenticationProvider { protected static Logger logger = LoggerFactory.getLogger(AbstractAuthenticationProvider.class); protected UserService userService; public void setUserService(UserService userService) { this.userService = userService; } public User attachToUser(Authentication auth) { User user = userService.get((String) auth.getPrincipal()); if (null == user) { throw new AuthenticationException(Authentication.ERROR_NOTEXIST); } if (!user.isEnabled()) { throw new AuthenticationException(Authentication.ERROR_UNACTIVE); } if (null == auth.getDetails()) { auth.setDetails(new UserDetails()); } UserDetails details = (UserDetails) auth.getDetails(); details.setUserid(user.getId()); details.setFullname(user.getFullname()); details.setCategory(user.getDefaultCategory()); return user; } }