📄 securitymanagersupport.java
字号:
/** * */package com.javaeye.sample.security.support;import java.util.HashMap;import java.util.List;import java.util.Map;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.dao.DataAccessException;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import org.springframework.security.userdetails.UserDetails;import org.springframework.security.userdetails.UserDetailsService;import org.springframework.security.userdetails.UsernameNotFoundException;import org.springframework.stereotype.Service;import com.javaeye.sample.entity.Resource;import com.javaeye.sample.entity.User;import com.javaeye.sample.security.SecurityManager;/** * @author Downpour */@Service("securityManager")public class SecurityManagerSupport extends HibernateDaoSupport implements UserDetailsService, SecurityManager { /** * Init sessionFactory here because the annotation of Spring 2.5 can not support override inject * * @param sessionFactory */ @Autowired public void init(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } /* (non-Javadoc) * @see org.springframework.security.userdetails.UserDetailsService#loadUserByUsername(java.lang.String) */ public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException, DataAccessException { List<User> users = getHibernateTemplate().find("FROM User user WHERE user.name = ? AND user.disabled = false", userName); if(users.isEmpty()) { throw new UsernameNotFoundException("User " + userName + " has no GrantedAuthority"); } return users.get(0); } /* (non-Javadoc) * @see com.javaeye.sample.security.SecurityManager#loadUrlAuthorities() */ public Map<String, String> loadUrlAuthorities() { Map<String, String> urlAuthorities = new HashMap<String, String>(); List<Resource> urlResources = getHibernateTemplate().find("FROM Resource resource WHERE resource.type = ?", "URL"); for(Resource resource : urlResources) { urlAuthorities.put(resource.getValue(), resource.getRoleAuthorities()); } return urlAuthorities; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -