`

shiro 用ajax方式登录的话,如何配置

 
阅读更多
 
<property name="filterChainDefinitions">
			<value>
				/login/** = anon
			</value>
</property>
 
 

 下马是java代码中要增加:

 

@RequestMapping(value = "/login")
	@ResponseBody
	public Object ajaxLogin(@RequestParam String username,
			@RequestParam String password, @RequestParam boolean rememberMe) {
		String ret="";
		Subject currentUser = SecurityUtils.getSubject();
		if (!currentUser.isAuthenticated()) {
			UsernamePasswordToken token = new UsernamePasswordToken(username,
					password);
			token.setRememberMe(rememberMe);
			try {
				currentUser.login(token);
				ret = "{success:true,message:'登陆成功'}";
			} catch (UnknownAccountException ex) {
				ret = "{success:false,message:'账号错误'}";
				logger.debug(ret);
			} catch (IncorrectCredentialsException ex) {
				ret = "{success:false,message:'密码错误'}";
				logger.debug(ret);
			} catch (LockedAccountException ex) {
				ret = "{success:false,message:'账号已被锁定,请与管理员联系'}";
				logger.debug(ret);
			} catch (AuthenticationException ex) {
				ret = "{success:false,message:'您没有授权'}";
				logger.debug(ret);
			}
		}
		// 返回json数据
		return ret;
	}
 

 

如果是html通过ajax请求,还需要加上跨域支持:

<filter>
		<filter-name>accessFilter</filter-name>
		<filter-class>com.hotice.shequ.filter.AccessFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>accessFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

@Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,  
            FilterChain chain) throws IOException, ServletException {  
            HttpServletResponse response = (HttpServletResponse) servletResponse;  
            response.setHeader("Access-Control-Allow-Origin","*");
            response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
            chain.doFilter(servletRequest, servletResponse);  
              
    }  

 

 
分享到:
评论

相关推荐

    Shiro和AJAX完美整合

    Apache Shiro 和 AJAX 的整合是现代 Web 应用程序中常见的需求,特别是在使用 Spring(SSH 框架的一部分)开发企业级应用时。Shiro 是一个强大且易用的 Java 安全框架,提供了身份验证、授权、会话管理和加密等功能...

    已经解决shiro登录 ajax交互

    shiro ajax 删除 没有权限 不跳转页面 或者没有反应

    idea工具,SSM+Shiro+Ajax+jQuery+Thymeleaf

    比较实用的简单项目,适合练习数据库的增删改查,框架与技术:SSM+Shiro+Ajax+jQuery+Thymeleaf

    shirodemo实现web登陆

    - 默认情况下,Shiro 使用内存中的会话存储,但可以通过配置使用分布式会话存储,如 Redis 或 Memcached。 7. **安全最佳实践**: - 密码不应明文存储,应使用加密算法如 SHA-256 加盐哈希。 - 对敏感操作进行...

    自定义shiro实现识别ajax请求的拒绝返回json,还是普通返回页面

    本篇文章将深入探讨如何使用 Shiro 自定义实现识别 AJAX 请求,并根据请求类型返回 JSON 或普通页面。 首先,我们需要理解 Shiro 的工作流程。Shiro 提供了 Filter(过滤器)机制,通过配置可以在 Web 应用的入口处...

    SpringBoot基于Shiro处理ajax请求代码实例

    本文将详细介绍SpringBoot基于Shiro处理ajax请求代码实例,通过示例代码,详细地介绍了Shiro的配置和使用方法,对大家的学习或者工作具有一定的参考学习价值。 Shiro框架简介 Shiro是一个开源的Java安全框架,由 ...

    shiro管理多登录入口配置,手机端登录与网页端登录

    在"shiro管理多登录入口配置,手机端登录与网页端登录"这个场景下,我们需要考虑如何为不同的登录入口(手机端和网页端)设置独立的验证流程。 首先,Shiro 的核心组件 Realm 负责与应用数据源交互,验证用户身份。...

    shiro 安全框架 最全中文配置文档

    10. **与Spring集成**:虽然Shiro自身已经足够轻量,但它也很好地与Spring框架集成,可以通过Spring的配置方式来管理Shiro组件,实现更高级的安全需求。 总的来说,Apache Shiro 是Java开发中一个不可忽视的安全...

    shiro使用简单Demo

    在这个"shiro使用简单Demo"中,我们可以看到作者提供了一个基础的Shiro实现,特别针对URL和注解的权限管理进行演示,这对于初学者来说是一个很好的起点。 首先,我们来看`shiro2.xml`,这是Shiro的配置文件。在该...

    shiro实现授权登陆验证

    在实际项目中,`shiro-root`目录可能包含了Shiro的配置文件(如shiro.ini或shiro.xml)、Spring整合Shiro的相关配置、以及自定义Realm的实现等。我们需要根据项目需求配置Shiro的安全策略,包括密码加密算法、未授权...

    shiro 安全框架 最全中文配置文档.docx

    与Spring Security相比,Shiro的配置和使用通常更为直观和简单。它提供了全面的身份验证、授权、会话管理和缓存管理功能。 **认证过程**: 在Shiro中,认证是指验证用户身份的过程。你可以通过实现`Subject`接口的`...

    ssm+shiro实现简单的登陆认证功能

    1. **Shiro配置**:首先,在Spring的配置文件中引入Shiro的相关bean,如SecurityManager、Realm(自定义的权限验证类,通常继承AuthorizingRealm)等。 2. **自定义Realm**: Realm是Shiro的核心,负责用户身份的...

    shiro 配置文件

    Shiro 的 Web 支持通常通过 Filter 方式进行,主要涉及两个 Filter:`ShiroFilter` 和 `DelegatingFilterProxy`。`ShiroFilter` 是 Shiro 提供的核心过滤器,负责拦截请求并执行相应的安全逻辑。而 `...

    shiro登陆注销权限控制

    标题"shiro登陆注销权限控制"主要涉及的是Apache Shiro框架在登录、登出以及权限管理方面应用。Shiro是一个强大且易用的Java安全框架,处理认证、授权、会话管理和加密等核心安全问题。在这个项目中,登录和注销功能...

    struts2和shiro完美整合解决方案

    2. **配置Shiro**:创建shiro.ini或通过Java代码配置SecurityManager,设置Realm以连接到用户数据源,定义用户的认证和授权规则。 3. **创建登录Action**:在Struts2中编写一个处理用户登录请求的Action,调用Shiro...

    java shiro实现退出登陆清空缓存

    在 Spring 配置文件 `spring-shiro.xml` 中,我们需要定义一个名为 `shiroFilter` 的 bean,它是 `ShiroFilterFactoryBean` 的实例。这个 bean 配置了 Shiro 过滤器链,其中包含了自定义的登出过滤器 `...

    基于Shiro 拦截URL,实现权限控制

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,使得在Java应用中处理安全性变得更加...正确配置和使用Shiro,能够有效地保护应用资源,确保只有合法的用户和操作才能进行。

    Shiro原理+配置

    三个核心组件:Subject, SecurityManager 和 Realms. Subject:即"当前操作用户"。...也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。

    shiro使用的jar包

    在描述中提到的"java项目使用shiro开发所使用的jar包都在里面",这暗示了压缩包可能包含了Shiro框架的所有必需组件。通常,这些jar包包括: 1. **org.apache.shiro.core.jar**:这是Shiro的核心模块,提供了基本的...

    spring配置shiro参考文档

    适用于spring集成的javaweb环境

Global site tag (gtag.js) - Google Analytics