com.sitewhere.security.SitewhereUserDetailsService.java Source code

Java tutorial

Introduction

Here is the source code for com.sitewhere.security.SitewhereUserDetailsService.java

Source

/*
 * $Id$
 * --------------------------------------------------------------------------------------
 * Copyright (c) Reveal Technologies, LLC. All rights reserved. http://www.reveal-tech.com
 *
 * The software in this package is published under the terms of the CPAL v1.0
 * license, a copy of which has been included with this distribution in the
 * LICENSE.txt file.
 */

package com.sitewhere.security;

import java.util.List;

import org.springframework.dao.DataAccessException;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.provisioning.UserDetailsManager;

import com.sitewhere.server.SiteWhereServer;
import com.sitewhere.spi.SiteWhereException;
import com.sitewhere.spi.user.IGrantedAuthority;
import com.sitewhere.spi.user.IUser;

/**
 * SiteWhere implementation of Spring security UserDetailsManager.
 * 
 * @author Derek
 */
public class SitewhereUserDetailsService implements UserDetailsManager {

    /*
     * (non-Javadoc)
     * 
     * @see org.springframework.security.userdetails.UserDetailsService#loadUserByUsername(java.lang. String)
     */
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException {
        try {
            IUser user = SiteWhereServer.getInstance().getUserManagement().getUserByUsername(username);
            List<IGrantedAuthority> auths = SiteWhereServer.getInstance().getUserManagement()
                    .getGrantedAuthorities(username);
            return new SitewhereUserDetails(user, auths);
        } catch (SiteWhereException e) {
            throw new UsernameNotFoundException("Unable to load user by username.", e);
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.springframework.security.userdetails.UserDetailsManager#createUser(org.springframework
     * .security.userdetails .UserDetails)
     */
    public void createUser(UserDetails info) {
        // User user = new User();
        // user.setUsername(info.getUsername());
        // user.setHashedPassword(info.getPassword());
        // try {
        // SiteWhereServer.getInstance().getUserManagement().createUser(user);
        // } catch (SiteWhereException e) {
        // throw new RuntimeException(e);
        // }
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.springframework.security.userdetails.UserDetailsManager#deleteUser(java.lang.String)
     */
    public void deleteUser(String username) {
        try {
            SiteWhereServer.getInstance().getUserManagement().deleteUser(username, true);
        } catch (SiteWhereException e) {
            throw new RuntimeException("Unable to delete user.", e);
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.springframework.security.userdetails.UserDetailsManager#userExists(java.lang.String)
     */
    public boolean userExists(String username) {
        return (loadUserByUsername(username) != null);
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.springframework.security.userdetails.UserDetailsManager#updateUser(org.springframework
     * .security.userdetails .UserDetails)
     */
    public void updateUser(UserDetails info) {
        throw new RuntimeException("User updates not supported.");
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.springframework.security.userdetails.UserDetailsManager#changePassword(java.lang.String,
     * java.lang.String)
     */
    public void changePassword(String oldPassword, String newPassword) {
        throw new RuntimeException("User updates not supported.");
    }
}