老师,我29,32行怎么错了,是因为没有导入什么包吗?
老師這個問題我已經自己解決了,但是回覆不了,我只能在這裡跟你說下
flask_shop_st.zip
老师您帮我看一下吧,我自己改错误,改着改着就多出来一个.实在是解决不了
package com.bjsxt.shiro02; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.*; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; public class TestB { public static void main(String[] args) { //[1]解析shiro.ini 文件 IniSecurityManagerFactory factory =new IniSecurityManagerFactory("classpath:shiro04-jdbc.ini "); //[2]通过SecurityManager 工厂获得SecurityManager 实例 SecurityManager securityManager = factory.getInstance(); //[3]用SecurityUtils把SecurityManager 对象设置到运行 SecurityUtils.setSecurityManager(securityManager); //[4]通过SecurityUtils 获得主体 subject Subject subject = SecurityUtils.getSubject(); //[5]书写自己输入的账号和密码---相当于用户自己输入的账号和密码 //我们拿着自己书写用户名密码去和shiro.ini 文件中的账号密码比较 UsernamePasswordToken token = new UsernamePasswordToken("root","root"); try { //[6]进行身份的验证 subject.login(token); //[7]通过方法判断是否登录成功 if (subject.isAuthenticated()) { System.out.println("登录成功"); } }catch (IncorrectCredentialsException e){ System.out.println("凭证(密码)不正确"); }catch (UnknownAccountException e1){ System.out.println("用户名不正确"); }catch (ExpiredCredentialsException e){ System.out.println("凭证过期"); }catch (ExcessiveAttemptsException e){ System.out.println("尝试次数过多"); e.printStackTrace(); }catch (ConcurrentAccessException e){ System.out.println("竞争次数过多"); } } }
自定义Realm文件
package com.bjsxt.shiro02; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * 自定义Realm */ /** * 授权 */ public class UserRealm extends AuthorizingRealm { @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { return null; } /** * 认证 * @param authenticationToken * @return * @throws AuthenticationException */ @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { try{ Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/shiro","root","zjx666888"); PreparedStatement preparedStatement = conn.prepareStatement("select uname,pwd from user"); ResultSet rs = preparedStatement.executeQuery(); while (rs.next()){ //把查到的数据集合给这个对象 SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(rs.getString("uname"),rs.getString("pwd"),"real"); return info; } }catch (Exception e){ } return null; } }
ini配置文件
数据库内容
老师为什么我输入sxt和123就可以登录成功,输入其他的就是密码错误??????????????
老师:
视频里面说通过Map传递参数,map.put("username","shangxuetang"); xml文件里面是${key} = #{value};
这个时候因为数据库的字段也是username 所以可以这么写;那如果是user_name 那要怎么处理,是不是map就
要改成map.put("user_name","shangxuetang")? 有咩有其他的处理方法呢?
用户登录后添加购物车那好像有一个小buff:
当用户将一个商品加入购物车,又在购物车中删除这个商品时 -- redis中缓存购物车中的key有这个用户的购物车key,但 这个key在redis中缓存的数据是null的 ,这时老师源码中的代码执行 时会报 空指针异常。
找不到settings.xml文件。。
我想问下 ,这个方法的作用是什么?为什么可以调用这个方法。
运行不了,第5行还是会出错,单单运行窗口还可以,但是运行送花的代码的时候就出错
请问老师,为什么我Linux里面目录是中文,跟你的不一样。
self.connection = pymysql.connect(**Dbutil.config) 老师为什么要用这种获取方法啊,我没太懂里面的具体含义
“s.__next__()“表示什么意思
开发的时候可不可以用先去判断一下available的大小,设定一下小于某个值就一次性读完,如果大于的话byte数组才用1024,还是说大部分情况下是不用available方法的
请问老师字节溢出是什么意思?
老师,为什么我设置好隔离级别后,如果关掉navicate,重新开启navicate后隔离级别又变成默认的repeatable read了?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637