java spring实现记住账号和密码

jsp页面:

js:

$(document).ready(function(){
        //记住密码功能
        var str = getCookie("loginInfo");
        str = str.substring(1,str.length-1);
        var username = str.split(",")[0];
        var password = str.split(",")[1];
        //自动填充用户名和密码
        $("#username").val(username);
        $("#password").val(password);
 });
 //获取cookie
 function getCookie(cname) {
     var name = cname + "=";
     var ca = document.cookie.split(';');
     for(var i=0; i<ca.length; i++) {
         var c = ca[i];
         while (c.charAt(0)==' ') c = c.substring(1);
         if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
     }
     return "";
 }
 //记住密码功能
 function remember(){
     var remFlag = $("input[type='checkbox']").is(':checked');
     if(remFlag==true){ //如果选中设置remFlag为1
         //cookie存用户名和密码,回显的是真实的用户名和密码,存在安全问题.
         var conFlag = confirm("记录账户和密码功能不宜在公共场所(如网吧等)使用,以防密码泄露.您确定要使用此功能吗?");
         if(conFlag){ //确认标志
             $("#remFlag").val("1");
         }else{
             $("input[type='checkbox']").removeAttr('checked');
             $("#remFlag").val("");
         }
     }else{ //如果没选中设置remFlag为""
         $("#remFlag").val("");
     }
 }

<div class="block">
    <p class="block-heading">用户登录</p>
    <div class="block-body">
     <form id="login_form"
      action="${pageContext.request.contextPath}/platform/login.htm"
      method="post">
      <input type="hidden" name="remFlag" id="remFlag"/>
      <label>用户名</label>
      <input autocomplete="off" id="username" name="username" value="${userName}" type="text" placeholder="请输入用户名" class="span12">
      <label>密码</label>
      <input name="password" id="password" type="password" class="span12" autocomplete="off" value="${userPass}"  placeholder="请输入用密码" >
      <label>验证码</label>
      <input autocomplete="off" style="width: 150px;" id="code" name="code" type="text"  placeholder="请输入验证码" class="span12"  οnblur="document.getElementById('enter').focus();">
      <img alt="验证码" id="scode" style="width: 75px; height:30px; margin-bottom: 9px; " src="${pageContext.request.contextPath}/platform/getCode.htmc" >
      <a href="#" οnclick="javascript:flushCode();"><font style="font-style:italic;" size="1">看不清?换一张</font></a><br>
      <input name="aaaa" type="checkbox" οnclick="remember();">记住账号和密码
      <a id="enter" href="#*" class="btn btn-primary pull-right" οnclick="toLogin()">立即登录</a>
     </form>
    </div>
   </div>


后台controller:

String userName = RequestTools.getParameter(request,"username","");
  String userPass = RequestTools.getParameter(request,"password","");
  //记住用户名、密码功能(注意:cookie存放密码会存在安全隐患)
        String remFlag = request.getParameter("remFlag");
        if("1".equals(remFlag)){
         //"1"表示用户勾选记住密码
            String loginInfo = userName+","+userPass;
            Cookie userCookie=new Cookie("loginInfo",loginInfo);
            userCookie.setMaxAge(30*24*60*60);   //存活期为一个月 30*24*60*60
            userCookie.setPath("/");
            response.addCookie(userCookie);
        }
        request.setAttribute("userName", userName);
        request.setAttribute("userPass", userPass);

就ok了





  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Java Spring Boot可以使用Spring Security来实现账号密码登录和注册。Spring Security是一个框架,用于在Java应用程序中提供身份验证和授权服务。以下是一个简单的示例。 首先,需要在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 接下来,需要创建一个用户实体类,包含用户名和密码字段: ``` @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) private String username; @Column(nullable = false) private String password; // getters and setters } ``` 然后,需要创建一个实现UserDetailsService接口的类,用于从数据库中获取用户信息: ``` @Service public class UserDetailsServiceImpl implements UserDetailsService { @Autowired private UserRepository userRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userRepository.findByUsername(username); if (user == null) { throw new UsernameNotFoundException("User not found"); } return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), new ArrayList<>()); } } ``` 在这个类中,通过UserRepository从数据库中获取User对象,然后将其转换为Spring Security的UserDetails对象。 最后,在Spring Boot的配置文件中配置Spring Security: ``` @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private UserDetailsService userDetailsService; @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/register").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .defaultSuccessUrl("/") .permitAll() .and() .logout() .logoutUrl("/logout") .permitAll(); } @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService).passwordEncoder(new BCryptPasswordEncoder()); } } ``` 在这个配置类中,首先注入UserDetailsService,然后配置HttpSecurity,指定哪些URL需要身份验证,哪些URL不需要身份验证。然后,配置登录页面、登录成功后跳转的页面和退出登录的URL。 最后,在configureGlobal方法中,使用UserDetailsService和PasswordEncoder配置AuthenticationManagerBuilder。 这样,就实现了使用Spring Security实现账号密码登录和注册。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值