[main] dataSou=com.mchange.v2.c3p0.ComboPooledDataSource dataSou.driverClass=com.mysql.jdbc.Driver dataSou.jdbcUrl=jdbc:mysql://localhost:3306/shiro dataSou.user=root dataSou.password=root jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm jdbcRealm.dataSource=$dataSou securityManager.realm=$jdbcRealm
package com.bjsxt.shiro; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; public class TestB { public static void main(String[] args) { // 解析shiro.ini文件 Factory<SecurityManager> factory=new IniSecurityManagerFactory("classpath:shrio-jdbc.ini"); // 通过SecurityManger工厂获得SecurityManger对象 SecurityManager instance = factory.getInstance(); // 把SecurityManger对象放在运行环境中 SecurityUtils.setSecurityManager(instance); // 通过SecurityManger获得主体subject Subject subject = SecurityUtils.getSubject(); // 书写自己的账号和密码 UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("zs","123"); // 进行比较 subject.login(usernamePasswordToken); if (subject.isAuthenticated()){ System.out.println("登录成功"); }else { System.out.println("登录失败"); } } }
老师,这是我的ini文件和Java文件,当我点击运行之后他就一直运行,也不出来结果
老师,请问你是怎么在变量附近调出一个窗口直接将变量作用域提升的呢
使用shiro认证,在客户端获得的用户名在controller层没有接收,是怎么传递到mapper层进行查询的?
@Controller public class AdminController { @RequestMapping("login") public String login(HttpServletRequest req){ //查看具体的异常信息,获得一场的信息名称 Object ex = req.getAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME); if(UnknownAccountException.class.getName().equals(ex)){ req.setAttribute("msg","用户名错误"); }else if(IncorrectCredentialsException.class.getName().equals(ex)){ req.setAttribute("msg","凭证不正确"); }else{ req.setAttribute("msg","未知异常"); } return "/error.jsp"; } }
老师我这里是报了这样的错误我的代码和老师的一样 ,哪儿里出错了..它提示是sql语句问题 ,
老师你好,请问在使用shiro安全框架的时候,如果登陆界面不止传入用户名和密码,比如我自己的项目还要传入IP和城市信息好在认证通过后进入主界面时去进行日志的记录,视频里只有用户名和密码,其他的参数不知道要怎么传入?请问老师有什么办法吗
老师,我按照视频中的代码进行测试,但是报了异常,请问怎么解决?
老师这里的登录成功和失败的跳转路劲不需要加.html
老师为什么我加了过滤器后老是启动不了
我的代码:
myShiro.zip
这里进行了测试,templates中放的是动态资源,我记忆中使用thymeleaf的方式,动态资源只能通过控制器获取。前面讲师login.html资源是放在动态资源中的。
这个时候因为没有该静态资源,访问路径交由自定义的RESTful风格验证器(此处可以打赢控制器方法中的page验证)。因此login.html并非是一个静态资源路径,而是一个控制器的url,下面fail也是,这里如果想尝试的话可以修改三个地方:
控制器的url @RequestMapping("/login")
http.formLogin().loginPage("/login")
验证范围http.authorizeRequest().antMatchers("/login")
当然试验了一定要全部改回和课程中的相同。方便后续练习
老师我做出来了,但是我找不到系统最后跳转到users.jsp的代码。不知道它是怎么跳过去的,好奇怪
老师这里我理解起来有点问题
一、shiro.ini 可不可以理解为realm访问数据库后,将数据库的信息存储到了shiro.ini
二、一个用户A想要登录,执行了这段代码,先获得到了securityManager对象,并将securityManager对象设置到了运行环境中,这时直接获取了Subject对象,Subject说是当前用户(或者第三方程序),Subject对象是不是就是这个用户A?
三、这个直接获取了Subject对象,这个Subject对象我理解的现在是不是空的,他包含了什么内容?如果这个对象指的就是A用户,那到目前为止也没有获取到用户的账号密码,他的账号密码在下一句代码存储到了token中。
四、身份验证的时候这是“当前用户”和“自己输入的账号密码”来匹配??
想了很久没想明白 请详解
老师,这种值怎么直接添加进数据库啊,我怎么添加不进去,varchar不行啊
为什么我一启动Tomcat就会这样,然后浏览器也不跳转登录界面,是怎么回事呢?
哦哦,我知道了,在spring-shiro里配置了succeUrl
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637