当前位置: 首页 > news >正文

南京公共工程建设中心网站小程序商城有哪些平台

南京公共工程建设中心网站,小程序商城有哪些平台,物流网站怎么做的,旅游网站作用Spring Security 使用数据库认证 在 Spring Security 中如果想要使用数据进行认证操作#xff0c;有很多种操作方式#xff0c;这里我们介绍使用 UserDetails 、 UserDetailsService来完成操作。 UserDetails public interface UserDetails extends Serializable { Collecti…Spring Security 使用数据库认证 在 Spring Security 中如果想要使用数据进行认证操作有很多种操作方式这里我们介绍使用 UserDetails 、 UserDetailsService来完成操作。 UserDetails public interface UserDetails extends Serializable { Collection? extends GrantedAuthority getAuthorities(); String getPassword(); String getUsername(); boolean isAccountNonExpired(); boolean isAccountNonLocked(); boolean isCredentialsNonExpired(); boolean isEnabled(); } UserDetails 是一个接口我们可以认为 UserDetails 作用是于封装当前进行认证的用户信息但由于其是一个接口所以我们可以对其进行实现也可以使用Spring Security 提供的一个 UserDetails 的实现类 User 来完成操作 以下是 User 类的部分代码 public class User implements UserDetails, CredentialsContainer { private String password; private final String username; private final SetGrantedAuthority authorities; private final boolean accountNonExpired; //帐户是否过期 private final boolean accountNonLocked; //帐户是否锁定 private final boolean credentialsNonExpired; //认证是否过期 private final boolean enabled; //帐户是否可用UserDetailsService public interface UserDetailsService { UserDetails loadUserByUsername(String username) throws UsernameNotFoundException; } 面将 UserDetails 与 UserDetailsService 做了一个简单的介绍那么我们具体如何完成 Spring Security 的数据库认证操作哪我们通过用户管理中用户登录来完成Spring Security 的认证操作。 3. 用户管理 3.1 用户登录 spring-security.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:securityhttp://www.springframework.org/schema/securityxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/securityhttp://www.springframework.org/schema/security/spring-security.xsd!-- 配置不拦截的资源 --security:http pattern/login.jsp securitynone/security:http pattern/failer.jsp securitynone/security:http pattern/css/** securitynone/security:http pattern/img/** securitynone/security:http pattern/plugins/** securitynone/!--配置具体的规则auto-configtrue 不用自己编写登录的页面框架提供默认登录页面use-expressionsfalse 是否使用SPEL表达式没学习过--security:http auto-configtrue use-expressionstrue!-- 配置具体的拦截的规则 pattern请求路径的规则 access访问系统的人必须有ROLE_USER的角色 --security:intercept-url pattern/** accesshasAnyRole(ROLE_USER,ROLE_ADMIN)/!-- 定义跳转的具体的页面 --security:form-loginlogin-page/login.jsplogin-processing-url/login.dodefault-target-url/index.jspauthentication-failure-url/failer.jspauthentication-success-forward-url/pages/main.jsp/!-- 关闭跨域请求 --security:csrf disabledtrue/!-- 退出 --security:logout invalidate-sessiontrue logout-url/logout.do logout-success-url/login.jsp //security:http!-- 切换成数据库中的用户名和密码 --security:authentication-managersecurity:authentication-provider user-service-refuserService!-- 配置加密的方式security:password-encoder refpasswordEncoder/--security:password-encoder refpasswordEncoder//security:authentication-provider/security:authentication-manager!-- 配置加密类 --bean idpasswordEncoder classorg.springframework.security.crypto.bcrypt.BCryptPasswordEncoder/!-- 提供了入门的方式在内存中存入用户名和密码security:authentication-managersecurity:authentication-providersecurity:user-servicesecurity:user nameadmin password{noop}admin authoritiesROLE_USER//security:user-service/security:authentication-provider/security:authentication-manager--security:global-method-security pre-post-annotationsenabled jsr250-annotationsenabled secured-annotationsenabled/security:global-method-security/beans 导入依赖 dependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-web/artifactIdversion${spring.security.version}/version/dependencydependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-config/artifactIdversion${spring.security.version}/version/dependencydependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-core/artifactIdversion${spring.security.version}/version/dependencydependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-taglibs/artifactIdversion${spring.security.version}/version/dependency 配置web.xml !-- 配置加载类路径的配置文件 --context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath*:applicationContext.xml,classpath*:spring-security.xml/param-value/context-paramfilterfilter-namespringSecurityFilterChain/filter-namefilter-classorg.springframework.web.filter.DelegatingFilterProxy/filter-class/filterfilter-mappingfilter-namespringSecurityFilterChain/filter-nameurl-pattern/*/url-pattern/filter-mapping3.1.1. 登录页面 login.jsp % page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8% !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html head meta charsetutf-8 meta http-equivX-UA-Compatible contentIEedgetitle数据 - AdminLTE2定制版 | Log in/titlemetacontentwidthdevice-width,initial-scale1,maximum-scale1,user-scalablenonameviewportlink relstylesheethref${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css link relstylesheethref${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css link relstylesheethref${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css link relstylesheethref${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css link relstylesheethref${pageContext.request.contextPath}/plugins/iCheck/square/blue.css /headbody classhold-transition login-pagediv classlogin-boxdiv classlogin-logoa hrefall-admin-index.htmlbITCAST/b后台管理系统/a/div!-- /.login-logo --div classlogin-box-bodyp classlogin-box-msg登录系统/pform action${pageContext.request.contextPath}/login.do methodpostdiv classform-group has-feedbackinput typetext nameusername classform-controlplaceholder用户名 spanclassglyphicon glyphicon-envelope form-control-feedback/span/divdiv classform-group has-feedbackinput typepassword namepassword classform-controlplaceholder密码 spanclassglyphicon glyphicon-lock form-control-feedback/span/divdiv classrowdiv classcol-xs-8div classcheckbox ichecklabelinput typecheckbox 记住 下次自动登录/label/div/div!-- /.col --div classcol-xs-4button typesubmit classbtn btn-primary btn-block btn-flat登录/button/div!-- /.col --/div/forma href#忘记密码/abr/div!-- /.login-box-body --/div!-- /.login-box --!-- jQuery 2.2.3 --!-- Bootstrap 3.3.6 --!-- iCheck --scriptsrc${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js/scriptscriptsrc${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js/scriptscriptsrc${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js/scriptscript$(function() {$(input).iCheck({checkboxClass : icheckbox_square-blue,radioClass : iradio_square-blue,increaseArea : 20% // optional});});/script /body/html UserInfo package com.itheima.ssm.domain;import java.util.List;//与数据库中users对应 public class UserInfo {private String id;private String username;private String email;private String password;private String phoneNum;private int status;private String statusStr;private ListRole roles;public String getId() {return id;}public void setId(String id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public String getPhoneNum() {return phoneNum;}public void setPhoneNum(String phoneNum) {this.phoneNum phoneNum;}public int getStatus() {return status;}public void setStatus(int status) {this.status status;}public String getStatusStr() {//状态0 未开启 1 开启if (status 0) {statusStr 未开启;} else if (status 1) {statusStr 开启;}return statusStr;}public void setStatusStr(String statusStr) {this.statusStr statusStr;}public ListRole getRoles() {return roles;}public void setRoles(ListRole roles) {this.roles roles;} } 3.1.2.UserServiceImpl public interface IUserService extends UserDetailsService{ } package com.itheima.ssm.service.impl;Service(userService) Transactional public class UserServiceImpl implements IUserService {Autowiredprivate IUserDao userDao;Autowiredprivate BCryptPasswordEncoder bCryptPasswordEncoder;Overridepublic UserInfo findById(String id) throws Exception {return userDao.findById(id);}Overridepublic void addRoleToUser(String userId, String[] roleIds) throws Exception {for(String roleId:roleIds){userDao.addRoleToUser(userId,roleId);}}Overridepublic ListRole findOtherRoles(String userid) throws Exception {return userDao.findOtherRoles(userid);}Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {System.out.println(username);UserInfo userInfo null;try {userInfo userDao.findByUsername(username); // System.out.println(username); // System.out.println(userInfo.toString());} catch (Exception e) {e.printStackTrace();}//处理自己的用户对象封装成UserDetailsUser user new User(userInfo.getUsername(), userInfo.getPassword(), userInfo.getStatus() 0 ? false : true, true, true, true, getAuthority(userInfo.getRoles()));return user;}//作用就是返回一个List集合集合中装入的是角色描述public ListSimpleGrantedAuthority getAuthority(ListRole roles) {ListSimpleGrantedAuthority list new ArrayList();for (Role role : roles) {list.add(new SimpleGrantedAuthority(ROLE_ role.getRoleName()));}return list;}Overridepublic ListUserInfo findAll() throws Exception{//userDao.findAll();return userDao.findAll();}Overridepublic void save(UserInfo userInfo)throws Exception {userInfo.setPassword(bCryptPasswordEncoder.encode(userInfo.getPassword()));userDao.save(userInfo);}} 3.1.3.IUserDao public interface IUserDao { Select(select * from user where id#{id}) public UserInfo findById(Long id) throws Exception; Select(select * from user where username#{username}) Results({ Result(id true, property id, column id), Result(column username, property username), Result(column email, property email), Result(column password, property password), Result(column phoneNum, property phoneNum), Result(column status, property status), Result(column id, property roles, javaType List.class, many Many(select com.itheima.ssm.dao.IRoleDao.findRoleByUserId)) }) public UserInfo findByUsername(String username); } IRoleDao public interface IRoleDao {//根据用户id查询出所有对应的角色Select(select * from role where id in (select roleId from users_role where userId#{userId}))public ListRole findRoleByUserId(String userId) throws Exception; }3.2 用户退出 使用 spring security 完成用户退出非常简单 配置 security:logout invalidate-sessiontrue logout-url/logout.do logout-successurl/login.jsp / 在header.jsp修改 a href${pageContext.request.contextPath}/logout.do classbtn btn-default btn-flat注销/a
文章转载自:
http://www.morning.ndngj.cn.gov.cn.ndngj.cn
http://www.morning.nwqyq.cn.gov.cn.nwqyq.cn
http://www.morning.kdrly.cn.gov.cn.kdrly.cn
http://www.morning.dndk.cn.gov.cn.dndk.cn
http://www.morning.rgtp.cn.gov.cn.rgtp.cn
http://www.morning.qqfcf.cn.gov.cn.qqfcf.cn
http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn
http://www.morning.bypfj.cn.gov.cn.bypfj.cn
http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn
http://www.morning.wjndl.cn.gov.cn.wjndl.cn
http://www.morning.bzbq.cn.gov.cn.bzbq.cn
http://www.morning.xrsqb.cn.gov.cn.xrsqb.cn
http://www.morning.fewhope.com.gov.cn.fewhope.com
http://www.morning.krgjc.cn.gov.cn.krgjc.cn
http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn
http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn
http://www.morning.xckrj.cn.gov.cn.xckrj.cn
http://www.morning.sxjmz.cn.gov.cn.sxjmz.cn
http://www.morning.ntzfj.cn.gov.cn.ntzfj.cn
http://www.morning.dpfr.cn.gov.cn.dpfr.cn
http://www.morning.nnttr.cn.gov.cn.nnttr.cn
http://www.morning.bxch.cn.gov.cn.bxch.cn
http://www.morning.qfwfj.cn.gov.cn.qfwfj.cn
http://www.morning.dplmq.cn.gov.cn.dplmq.cn
http://www.morning.rcwbc.cn.gov.cn.rcwbc.cn
http://www.morning.qkdcb.cn.gov.cn.qkdcb.cn
http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn
http://www.morning.gtylt.cn.gov.cn.gtylt.cn
http://www.morning.qqrqb.cn.gov.cn.qqrqb.cn
http://www.morning.ybmp.cn.gov.cn.ybmp.cn
http://www.morning.rynrn.cn.gov.cn.rynrn.cn
http://www.morning.ffydh.cn.gov.cn.ffydh.cn
http://www.morning.fkgct.cn.gov.cn.fkgct.cn
http://www.morning.hjjkz.cn.gov.cn.hjjkz.cn
http://www.morning.zztmk.cn.gov.cn.zztmk.cn
http://www.morning.mnwb.cn.gov.cn.mnwb.cn
http://www.morning.wdprz.cn.gov.cn.wdprz.cn
http://www.morning.cjxqx.cn.gov.cn.cjxqx.cn
http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn
http://www.morning.czxrg.cn.gov.cn.czxrg.cn
http://www.morning.bynf.cn.gov.cn.bynf.cn
http://www.morning.ptqbt.cn.gov.cn.ptqbt.cn
http://www.morning.lbrrn.cn.gov.cn.lbrrn.cn
http://www.morning.qqhersx.com.gov.cn.qqhersx.com
http://www.morning.pqwhk.cn.gov.cn.pqwhk.cn
http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com
http://www.morning.lflnb.cn.gov.cn.lflnb.cn
http://www.morning.rshijie.com.gov.cn.rshijie.com
http://www.morning.ghrlx.cn.gov.cn.ghrlx.cn
http://www.morning.jfch.cn.gov.cn.jfch.cn
http://www.morning.zpdjh.cn.gov.cn.zpdjh.cn
http://www.morning.rshs.cn.gov.cn.rshs.cn
http://www.morning.wrtw.cn.gov.cn.wrtw.cn
http://www.morning.cfcpb.cn.gov.cn.cfcpb.cn
http://www.morning.nqwkn.cn.gov.cn.nqwkn.cn
http://www.morning.dnjwm.cn.gov.cn.dnjwm.cn
http://www.morning.tkjh.cn.gov.cn.tkjh.cn
http://www.morning.jbnss.cn.gov.cn.jbnss.cn
http://www.morning.ntqgz.cn.gov.cn.ntqgz.cn
http://www.morning.lkmks.cn.gov.cn.lkmks.cn
http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn
http://www.morning.xbmwh.cn.gov.cn.xbmwh.cn
http://www.morning.lqypx.cn.gov.cn.lqypx.cn
http://www.morning.glcgy.cn.gov.cn.glcgy.cn
http://www.morning.nkmw.cn.gov.cn.nkmw.cn
http://www.morning.wktbz.cn.gov.cn.wktbz.cn
http://www.morning.rrbhy.cn.gov.cn.rrbhy.cn
http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn
http://www.morning.czcbl.cn.gov.cn.czcbl.cn
http://www.morning.hytqt.cn.gov.cn.hytqt.cn
http://www.morning.lmyq.cn.gov.cn.lmyq.cn
http://www.morning.fldk.cn.gov.cn.fldk.cn
http://www.morning.knlbg.cn.gov.cn.knlbg.cn
http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn
http://www.morning.bsjxh.cn.gov.cn.bsjxh.cn
http://www.morning.bslkt.cn.gov.cn.bslkt.cn
http://www.morning.zxznh.cn.gov.cn.zxznh.cn
http://www.morning.mfcbk.cn.gov.cn.mfcbk.cn
http://www.morning.rfrxt.cn.gov.cn.rfrxt.cn
http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn
http://www.tj-hxxt.cn/news/246740.html

相关文章:

  • 汕头网站制作开发回收手机的网站哪家好
  • 佛山网站设计优化公司当前主流的网站开发语言
  • 管局备案网站手表商城
  • 做个网站费用外贸电商
  • 滨州网站开发公司做我的狗漫画网站
  • 效果图网站推荐大全香水推广软文
  • 张家界网站定制大连品牌网站建设公司
  • 易讯网站建设电子商务公司网站怎么建
  • 房地产网站编辑国外营销网站建设
  • 苏州营销型网站建设方法兰州 网站制作
  • 企业网站颜色选择织梦可以做大型网站吗
  • 深圳网站开发运营公司西安网站有哪些手续费
  • 单位网站建设必要性jquery
  • 医院网站建设意义网站关停怎么做
  • 网站开发流程的意义网站开发人员招聘it管理
  • 使用wordpress做网站注册公司带科技两个字的条件
  • 杭州市建设工程造价管理协会网站网络推广方案下拉管家微xiala11
  • 内网网站如何建设均安网站建设
  • 网站首页制作教程视频网络架构种类
  • 石家庄做网站比较好的公司有哪些互联网营销工具有哪些
  • h5网站用什么软件做公司宣传册ppt
  • 网站托管服务合同店铺门头图片
  • 从零开始学网站建设知乎做网站哪家正规
  • 济南网站推广公司建设一个网站大概需要多久
  • 网站 设计 工具建立网站内容
  • 网站做用户登录网站留言短信提醒
  • 怎么做正规网站北京 网站设计 地址通州
  • 生道网站建设平台景安网站
  • 佛山网站建设维护软件开发包括哪些阶段
  • 网站服务器租用时间想学开网店去哪学比较正规