/**
* Copyright (C) 2014 cherimojava (http://github.com/cherimojava/orchidae) Licensed under the Apache License, Version
* 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the
* License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the specific language governing permissions and limitations
* under the License.
*/
package com.github.cherimojava.orchidae.security;
import java.util.Collections;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import com.github.cherimojava.data.mongo.entity.EntityFactory;
import com.github.cherimojava.orchidae.api.entities.User;
import com.github.cherimojava.orchidae.util.UserUtil;
/**
* loads User detail information/basic user information and the users permissions
*/
public class MongoUserDetailService
implements UserDetailsService
{
@Autowired
private EntityFactory factory;
@Autowired
private UserUtil userUtil;
/**
* retrieves the user information or null if no such user is found
*
* @param username
* @return
* @throws UsernameNotFoundException
*/
@Override
public UserDetails loadUserByUsername( String username )
throws UsernameNotFoundException
{
User user = userUtil.getUser( username );
if ( user == null )
{
return null;
}
return new org.springframework.security.core.userdetails.User( user.getUsername(), user.getPassword(),
Collections.EMPTY_LIST );
}
}