-
spring security3 的UserDetailsService问题0
在使用spring security3 的时候,现象了UserDetailsService这个接口,我现在想获得serverName,就像这样一样:request.getServerName();
下面附上我的代码块,请高手指引。@Service("adminDetailsServiceImpl") public class AdminDetailsServiceImpl implements UserDetailsService { private final Logger LOGGER = LoggerFactory.getLogger(this.getClass()); @Resource(name = "adminDaoImpl") private AdminDao adminDao; @Resource(name = "memberDaoImpl") private MemberDao memberDao; @SuppressWarnings("unused") @Transactional public Admin loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { try { Member member = memberDao.getMemberByUsernameOrEmailOrMobile(username); if (member == null) { throw new UsernameNotFoundException("用户[" + username + "]不存在!"); } Admin admin = adminDao.getAdminByMember(member); if (admin == null) { throw new UsernameNotFoundException("管理员[" + username + "]不存在!"); } // else { // List<String> storeDomainName = adminDao.getStoreDomainName(admin.getStoreId()); // // //String sb = authentication.getName(); HttpServletRequest request = ServletActionContext.getRequest(); request.getServerName(); System.out.println("------------------------------ " +SpringSecurityUtil.getStoreId()); // } if (StringUtils.isNotEmpty(member.getEmail())) { admin.setUsername(member.getEmail()); } else if (StringUtils.isNotEmpty(member.getMobile())) { admin.setUsername(member.getMobile()); } else { admin.setUsername(member.getUsername()); } admin.setPassword(member.getPassword()); // 解除管理员账户锁定 Setting setting = SettingUtil.getSetting(admin.getStoreId()); if (admin.getIsAccountLocked() == true) { if (setting.getIsLoginFailureLock() == true) { int loginFailureLockTime = setting.getLoginFailureLockTime(); if (loginFailureLockTime != 0) { Date lockedDate = admin.getLockedDate(); Date nonLockedTime = DateUtils.addMinutes(lockedDate, loginFailureLockTime); Date now = new Date(); if (now.after(nonLockedTime)) { admin.setLoginFailureCount(0); admin.setIsAccountLocked(false); admin.setLockedDate(null); adminDao.update(admin); } } } else { admin.setLoginFailureCount(0); admin.setIsAccountLocked(false); admin.setLockedDate(null); adminDao.update(admin); } } admin.setAuthorities(getGrantedAuthorities(admin)); return admin; } catch (Exception e) { LOGGER.error(e.getMessage(), e); } return null; } private GrantedAuthority[] getGrantedAuthorities(Admin admin) { Set<GrantedAuthority> grantedAuthorities = new HashSet<GrantedAuthority>(); for (Role role : admin.getRoleSet()) { for (String authority : role.getAuthorityList()) { grantedAuthorities.add(new GrantedAuthorityImpl(authority)); } } return grantedAuthorities.toArray(new GrantedAuthority[grantedAuthorities.size()]); } }
2012年6月11日 14:06
2个答案 按时间排序 按投票排序
-
你就是想获取request 是吧;
我来告诉你吧:HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
2014年3月14日 11:35
-
让我看看其他相关联的代码可以吗?
尤其是这句中提到的SettingUtil 和Setting
// 解除管理员账户锁定
Setting setting = SettingUtil.getSetting(admin.getStoreId());
2013年4月03日 19:18
相关推荐
Spring Security 3.0.1 是在 Spring Security 3.0 的基础上进行的一次 bug 修复版本,主要针对先前版本中存在的问题进行了修正。此次版本未引入新的功能,但修正了一些已知的问题,增强了稳定性。 ##### 1.4 获取 ...
1. **UserDetailsService**: 这是Spring Security的核心组件之一,负责加载用户信息。开发者可以通过实现这个接口,从数据库或其他来源获取用户信息。 2. **RoleHierarchy**: 定义角色之间的层次关系,允许将角色...
根据给定的文件信息,以下是对“Spring Security3”这一主题的详细知识点解析: ### Spring Security3概述 Spring Security3是Spring框架中的一个模块,它提供了全面的安全服务,旨在为Web和非Web应用程序提供访问...
3. **SpringBoot整合SpringSecurity** - `spring-boot-starter-security`依赖:SpringBoot项目中添加此依赖即可自动配置SpringSecurity。 - 自定义登录页面:通过设置`loginPage`和`loginProcessingUrl`属性,可以...
**Spring Security 3 多用户登录实现详解** Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,广泛应用于Java EE平台上的安全解决方案。在本文中,我们将深入探讨如何在Spring Security 3中实现...
SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...
"Spring Security 3 Demos" 是一套针对Spring Security 3 版本的示例项目,旨在帮助开发者理解并掌握该框架的基本用法和核心功能。 在这些示例中,你可以学习到以下关键知识点: 1. **身份验证(Authentication)*...
Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中,我们将深入探讨Spring Security的核心概念以及如何将其应用于实际的Web应用程序开发。 首先,我们从用户、...
在"SpringSecurity2Demo"这个项目中,我们可以预期看到以下组成部分: 1. **配置文件**: `spring-security.xml`,这是Spring Security的核心配置文件,包含了过滤器链的配置、用户认证源、授权规则等。 2. **控制...
Spring Security是Spring生态体系中的一个核心组件,主要负责应用程序的安全性,包括认证和授权。它为Web应用提供了全面的保护,防止未经授权的访问和操作。在版本2.5时,Spring Security已经是一个成熟且功能丰富的...
- **Session Management**:Spring Security提供了会话固定保护,防止会话劫持和会话超时等安全问题。 - **Concurrent Session Control**:可以限制同一用户同时登录的会话数量,防止账户被非法使用。 5. **CSRF...
在Spring Security 3版本中,这个框架进一步完善了其特性和性能,使其成为开发者构建安全应用的首选工具。下面将详细探讨Spring Security 3中的关键知识点。 1. **核心组件**: - **Filter Chain**: Spring ...
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,它是安全领域中Spring生态系统的一部分。Spring Security旨在为Java应用程序提供一个全面的安全解决方案,尤其适用于企业级应用场景。它主要...
3. **使用Spring Security的访问决策管理器(AccessDecisionManager)**:如果你希望控制哪些角色可以访问静态资源,可以实现自己的访问决策管理器,然后在配置中指定使用这个管理器。 4. **使用HTTP基本认证或OAuth2...
本文档所指的版本为 Spring Security 3.0.1,这是一个 bug fix 版本,主要针对 3.0 版本中存在的问题进行修复,确保开发者能够获取更稳定可靠的 Spring Security 库。 **1.4 获取 Spring Security** - **项目模块*...
Spring Security提供了`UserDetailsService`接口,你可以实现这个接口来从数据库中加载用户信息。 6. **密码编码器**:Spring Security推荐使用`PasswordEncoder`接口,如`BCryptPasswordEncoder`,来确保密码的...
同时,SpringSecurity还提供了丰富的社区资源和强大的社区支持,帮助开发者解决实际问题。 综上所述,这两份SpringSecurity的中文文档是学习和掌握SpringSecurity的宝贵资料,它们将覆盖从基础概念到高级特性的全...
在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...
在Spring Security 3版本中,这个框架已经相当成熟,提供了许多关键的安全特性。 首先,Spring Security 3的核心组件包括Security Context(安全上下文)、Authentication(认证)、Authorization(授权)和Filter ...
3. **过滤器链**:Spring Security的核心是过滤器链,它拦截HTTP请求并执行安全逻辑。`FilterSecurityInterceptor`是其中的关键组件,它处理授权检查。3.1版中,你可以自定义过滤器顺序和配置,以适应不同的应用需求...