marco SpringBoot: Admin

marco SpringBoot: Admin



 

admin Login

  • Creación de la página de inicio de sesión y la página de administración
    • Página principal de Administración: De acuerdo con el gerente de fondo de la página lista de blogs de diseño para gestionar
    • Administrador de la página de inicio de sesión: Semantic UIlas opciones de forma de la conexión diseño de página web oficial de ahí, se puede escribir directamente brillando
  • UserServiceyUserRespository
    • En com.xxxcaso de un nuevo paquete de servicebolsa, utilizado para almacenar documentos relacionados con el procesamiento de lógica de servicio
    • Llaman un nuevo UserServicearchivo de interfaz ( Interface), los servicios de definición de interfaz de usuario
      empaquetar com.skgxsn.blog_idea2017.service; 
      
      importación com.skgxsn.blog_idea2017.po.User; 
      
      pública  interfaz UserService { 
      
          Usuario CheckUser (String nombre de usuario, contraseña String); 
      }
    • Implementa la interfaz con el nuevo paquete UserServiceImpl.javautilizan para implementar la interfaz
      empaquetar com.skgxsn.blog_idea2017.service; 
      
      importación com.skgxsn.blog_idea2017.dao.UserRepository;
      importación com.skgxsn.blog_idea2017.po.User;
      importación org.springframework.beans.factory.annotation.Autowired;
      importación org.springframework.stereotype.Service; 
      
      @Service 
      pública  clase UserServiceImpl implementos UserService { 
      
          @Autowired 
          privada userRepository UserRepository; 
      
          @ Override 
          pública del usuario (nombre de usuario String, String contraseña) CheckUser { 
              usuario Usuario = userRepository.findByUsernameAndPassword (nombre de usuario, contraseña);
              volver usuario; 
          } 
      }
    • com.xxxBajo el nuevo bolso del paquete daode base de datos de interacción, este nuevo paquete de UserRespositoryinterfaz:
      empaquetar com.skgxsn.blog_idea2017.dao; 
      
      importación com.skgxsn.blog_idea2017.po.User;
      importación org.springframework.data.jpa.repository.JpaRepository; 
      
      pública  interfaz UserRepository extiende JpaRepository <usuario, Long> { 
      
          usuario (nombre de usuario, String contraseña) findByUsernameAndPassword; 
      }
  • LoginControllerrealización de aterrizaje
    • webEnvase en el marco del nuevo adminpaquete, bajo el nuevo LoginContorller.java, para lograr el acceso del administrador:
      empaquetar com.skgxsn.blog_idea2017.web.admin; 
      
      importación com.skgxsn.blog_idea2017.po.User;
      importación com.skgxsn.blog_idea2017.service.UserService;
      importación org.springframework.beans.factory.annotation.Autowired;
      importación org.springframework.stereotype.Controller;
      importación org.springframework.web.bind.annotation.GetMapping;
      importación org.springframework.web.bind.annotation.PostMapping;
      importación org.springframework.web.bind.annotation.RequestMapping;
      importación org.springframework.web.bind.annotation.RequestParam;
      importación org.springframework.web.servlet.mvc.support.RedirectAttributes; 
      
      importarjavax.servlet.http.HttpSession; 
      
      @Controller 
      @RequestMapping ( "/ admin" )
       pública  clase LoginController { 
      
          @Autowired 
          privada UserService UserService; 
      
          @GetMapping 
          pública Cadena loginPage () {
               retorno "admin / login" ; 
          } 
      
          @PostMapping ( "/ login" )
           pública de inicio de sesión String (Cadena @RequestParam nombre de usuario, 
                              contraseña @RequestParam cadena, 
                              HttpSession de sesión, 
                              atributos RedirectAttributes) { 
              user user =userService.checkUser (nombre de usuario, contraseña);
              si (user =! nula ) { 
                  user.setPassword ( nula ); 
                  session.setAttribute ( "usuario" , el usuario);
                  volver "admin / index" ; 
              } Demás { 
                  attributes.addFlashAttribute ( "mensaje", "用户名和密码错误" );
                  volver "redirección: admin /" ; 
              } 
          } 
      
          @GetMapping ( "/ cierre de sesión" )
           pública de cierre de sesión de cuerdas (HttpSession sesión) { 
              sesión.);
              volver "redirección: admin /" ; 
          } 
      }
    • En login.htmladición el mensaje de error de inicio de sesión:
      < Div clase = "error ui mini-mensaje" > </ div > 
                          < div clase = "mini mensaje negativo ui" th: a menos = "$ {# strings.isEmpty (#messages)}" th: texto = "$ {# mensajes}" >用户名或密码错误</ div >
    • definir script:
      < Secuencia de comandos > 
          $ ( ' .ui.form ' ) .Form ({ 
              campos: { 
                  nombre de usuario: { 
                      indentifier: ' nombre de usuario ' , 
                      reglas: [{ 
                          tipo: ' vaciar ' , 
                          pronta: ' 请输入用户名' , 
                      }] 
                  } , 
                  contraseña: { 
                      indentifier: ' password ' , 
                      reglas: [{ 
                          tipo: 'vaciar ' 
                          pronta: ' Por favor, Introduzca la contraseña ' , 
                      }] 
                  } 
              } 
          }) </ script >
      
  • MD5encriptación
    • En com.xxxel nuevo paquete en Utilel paquete para el almacenamiento de herramientas, un nuevo MD5Utils.javacifrado de conjunto:
      Paquete com.skgxsn.blog_idea2017.util; 
      
      Importación del java.security.MessageDigest;
       Importación java.security.NoSuchAlgorithmException; 
      
      públicos  de clase MD5Utils { 
      
          / ** 
           * las clases de cifrado MD5 
           * @param STR cadena a encriptar 
           * @return     caracteres luego de unos pocos metros string
            * / 
          pública  estática código string (cadena str) {
               try { 
                  la MessageDigest MD = MessageDigest.getInstance ( "el MD5" ); 
                  md.update (str.getBytes ()); 
                  byte [] = byteDigest md.digest ();
                   int I ;
                  StringBuffer buf = nuevo StringBuffer ( "" );
                  para ( int offset = 0; el desplazamiento <byteDigest.length; compensar ++ ) { 
                      i = byteDigest [desplazamiento];
                      si (i <0 ) 
                          i + = 256 ;
                      si (i <16 ) 
                          buf.append ( "0" ); 
                      buf.append (Integer.toHexString (i)); 
                  } 
                  // 32位加密
                  retorno buf.toString ();
                  // 16位加密
       //            retorno buf.toString () subcadena (8, 24).; 
              } Catch (NoSuchAlgorithmException e) { 
                  e.printStackTrace (); 
                  volver  nula ; 
              } 
          } 
      
          Pública  estáticas  vacíos principales (args String []) { 
              System.out.println (código ( "123456" )); 
          } 
      }
    • En UserServiceImpl.javael UserChecktiempo de referencia de lectura método de pase MD5Utils.code(password)se puede implementar MD5el cifrado
  • interceptor de registro
    • Con el fin de evitar que la gente sabe el contenido de la gestión de proyectos puede ser un blog fácilmente página de destino, por lo que añadir un interceptor de inicio de sesión, el filtro establecido por el usuario
    • En com.xxx.erb.admincaso de que un nuevo paquete BlogController:
      empaquetar com.skgxsn.blog_idea2017.web.admin; 
      
      
      importación org.springframework.stereotype.Controller;
      importación org.springframework.web.bind.annotation.GetMapping;
      importación org.springframework.web.bind.annotation.RequestMapping; 
      
      @Controller 
      @RequestMapping ( "/ admin" )
       pública  clase BlogController { 
      
          @GetMapping ( "/ blog-list" )
           pública () {String bloglist
               retorno "admin / blog-list" ; 
          } 
      }
    • En com.xxxel nuevo paquete en el paquete de Interceptorpaquete, acumulación LoginInterceptor.java, WecConfig.javaarchivo se utiliza para establecer la implementación específica de aterrizaje interceptor:
      // LoginInterceptor.java 
      paquete com.skgxsn.blog_idea2017.Interceptor; 
      
      importación org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 
      
      importación javax.servlet.http.HttpServletRequest;
      importación javax.servlet.http.HttpServletResponse; 
      
      público  de clase LoginInterceptor extiende HandlerInterceptorAdapter { 
      
          @ Override 
          pública  booleano preHandle (HttpServletRequest solicitud, 
                                   HttpServletResponse respuesta, 
                                   el controlador de objeto) lanza la excepción { 
      
              si (request.getSession (). getAttribute ( "usuario") ==nula ) { 
                  response.sendRedirect ( "/ admin" );
                  volver  falsa ; 
              } 
              Devolver  cierto ; 
          } 
      } 
      
      
      // WecConfig.java 
      paquete com.skgxsn.blog_idea2017.Interceptor; 
      
      importación org.springframework.context.annotation.Configuration;
      importación org.springframework.web.servlet.config.annotation.InterceptorRegistry;
      importación org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
      
      @Configuration 
      pública  clase WebConfig extiende WebMvcConfigurerAdapter {
      
          @ Override 
          públicos  vacíos addInterceptors (registro InterceptorRegistry) { 
              registry.addInterceptor ( nueva LoginInterceptor ()) 
                      .addPathPatterns ( "/ admin / **" ) 
                      .excludePathPatterns ( "/ admin" ) 
                      .excludePathPatterns ( "/ admin / login" ); 
          } 
      }

       

 

Supongo que te gusta

Origin www.cnblogs.com/skygrass0531/p/12551250.html
Recomendado
Clasificación