Package org.beangle.security.monitor.auth.provider

Source Code of org.beangle.security.monitor.auth.provider.AbstractAuthenticationProvider

package org.beangle.security.monitor.auth.provider;

import org.beangle.security.User;
import org.beangle.security.monitor.Authentication;
import org.beangle.security.monitor.AuthenticationException;
import org.beangle.security.monitor.auth.ui.UserDetails;
import org.beangle.security.service.UserService;

public abstract class AbstractAuthenticationProvider implements AuthenticationProvider {

  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;
  }

}
TOP

Related Classes of org.beangle.security.monitor.auth.provider.AbstractAuthenticationProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.