老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

ServiceComb實戰

ServiceComb實戰combDemo
步驟一、配置POM

創新互聯公司是一家專注于成都網站制作、成都網站設計與策劃設計,冷水江網站建設哪家好?創新互聯公司做網站,專注于網站建設10余年,網設計領域的專業建站公司;建站業務涵蓋:冷水江等地區。冷水江做網站價格咨詢:18982081108



    4.0.0

    cn.qchcolud
    combDemo
    0.0.1-SNAPSHOT
    jar

    combDemo
    Demo project for ServiceComb-Spring

    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.12.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.hibernate
            hibernate-validator
        

        
            org.springframework.boot
            spring-boot-starter
        
          
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.apache.servicecomb
            spring-boot-starter-provider
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
  MySQL
  mysql-connector-java


  org.springframework.boot
  spring-boot-starter-data-jpa


    io.jsonwebtoken
    jjwt-api
    0.10.5


    io.jsonwebtoken
    jjwt-impl
    0.10.5
    runtime


    io.jsonwebtoken
    jjwt-jackson
    0.10.5
    runtime



    com.fasterxml.jackson.core
    jackson-databind
    2.8.8.1

    

    
        
            
                org.apache.servicecomb
                java-chassis-dependencies
                1.0.0-m2
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                1.5.12.RELEASE
                
                    
                        
                            repackage
                        
                        
                            target/bin
                            exec
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-jar-plugin
                2.6
                
                    
                        
                            .
                        
                    
                
            
        
    


步驟二、application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/combDemo?useSSL=false
spring.datasource.username=root
spring.datasource.password=1234
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

步驟三、工程源碼


package cn.qchcolud.combDemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.apache.servicecomb.springboot.starter.provider.EnableServiceComb;

@SpringBootApplication
@EnableServiceComb
public class CombDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(CombDemoApplication.class, args);
    }
}
package cn.qchcolud.combDemo.dto;

public class UserDTO {
      private String name;
      private String password;
      public String getName() {
        return name;
      }
      public String getPassword() {
        return password;
      }
      public UserDTO() {
      }
      public UserDTO(String name, String password) {
        this.name = name;
        this.password = password;
      }
    }
package cn.qchcolud.combDemo.entity;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "T_User")
public class UserEntity {
  @Id
  private String name;

  private String password;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public UserEntity() {
  }

  public UserEntity(String name, String password) {
    this.name = name;
    this.password = password;
  }
}
package cn.qchcolud.combDemo.jwt;

import java.time.ZonedDateTime;
import java.util.Date;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import io.jsonwebtoken.JwtException;
import io.jsonwebtoken.Jwts;
import static io.jsonwebtoken.SignatureAlgorithm.HS512;

@Component
public class JwtTokenStore implements TokenStore {
  private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenStore.class);

  private final String secretKey;

  private final int secondsToExpire;

  public JwtTokenStore() {
    this.secretKey = "someSecretKeyForAuthenticagggggggggggggggggggggtiondfgdgfdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd";
    this.secondsToExpire = 60 * 60 * 24;
  }

  public JwtTokenStore(String secretKey, int secondsToExpire) {
    this.secretKey = secretKey;
    this.secondsToExpire = secondsToExpire;
  }

  @Override
  public String generate(String userName) {
    return Jwts.builder().setSubject(userName)
        .setExpiration(Date.from(ZonedDateTime.now().plusSeconds(secondsToExpire).toInstant()))
        .signWith(HS512, secretKey).compact();
  }

  @Override
  public boolean validate(String token) {
    try {
      return StringUtils.isNotEmpty(Jwts.parser()
       .setSigningKey(secretKey).parseClaimsJws(token).getBody().getSubject());
    } catch (JwtException | IllegalArgumentException e) {
      LOGGER.info("validateToken token : " + token + " failed", e);
    }
    return false;
  }
}
package cn.qchcolud.combDemo.jwt;

public interface TokenStore {
      String generate(String userName);

      boolean validate(String token);
    }
package cn.qchcolud.combDemo.repository;

import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;

import cn.qchcolud.combDemo.entity.UserEntity;

@Repository
public interface UserRepository extends PagingAndSortingRepository {
  UserEntity findByName(String name);
}
package cn.qchcolud.combDemo.service;

import org.springframework.http.ResponseEntity;

import cn.qchcolud.combDemo.dto.UserDTO;

public interface UserService {
      ResponseEntity logon(UserDTO user);
      ResponseEntity login(UserDTO user);
    }
package cn.qchcolud.combDemo.service;

import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.provider.rest.common.RestSchema;

import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.qchcolud.combDemo.dto.UserDTO;
import cn.qchcolud.combDemo.entity.UserEntity;
import cn.qchcolud.combDemo.jwt.TokenStore;
import cn.qchcolud.combDemo.repository.UserRepository;
import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.springframework.http.HttpHeaders.AUTHORIZATION;

@RestSchema(schemaId = "user")
@RequestMapping(path = "/")
public class UserServiceImpl implements UserService {
  private final UserRepository repository;

  private final TokenStore tokenStore;

  @Autowired
  public UserServiceImpl(UserRepository repository, TokenStore tokenStore) {
    this.repository = repository;
    this.tokenStore = tokenStore;
  }

  @Override
  @PostMapping(path = "logon")
  public ResponseEntity logon(@RequestBody UserDTO user) {
    if (validateUser(user)) {
      UserEntity dbUser = repository.findByName(user.getName());
      if (dbUser == null) {
        UserEntity entity = new UserEntity(user.getName(), user.getPassword());
        repository.save(entity);
        return new ResponseEntity<>(true, HttpStatus.OK);
      }
      throw new InvocationException(BAD_REQUEST, "user name had exist");
    }
    throw new InvocationException(BAD_REQUEST, "incorrect user");
  }

  @Override
  @PostMapping(path = "login")
  public ResponseEntity login(@RequestBody UserDTO user) {

      System.out.println("-->"+user.getName()+"--"+user.getPassword());
    if (validateUser(user)) {
      UserEntity dbUser = repository.findByName(user.getName());
      if (dbUser != null) {
        if (dbUser.getPassword().equals(user.getPassword())) {
          String token = tokenStore.generate(user.getName());
          HttpHeaders headers = generateAuthenticationHeaders(token);
          //add authentication header
          return new ResponseEntity<>(true, headers, HttpStatus.OK);
        }
        throw new InvocationException(BAD_REQUEST, "wrong password");
      }
      throw new InvocationException(BAD_REQUEST, "user name not exist");
    }
    throw new InvocationException(BAD_REQUEST, "incorrect user");
  }

  private boolean validateUser(UserDTO user) {
    return user != null && StringUtils.isNotEmpty(user.getName()) && StringUtils.isNotEmpty(user.getPassword());
  }

  private HttpHeaders generateAuthenticationHeaders(String token) {
    HttpHeaders headers = new HttpHeaders();
    headers.add(AUTHORIZATION, token);
    return headers;
  }
}

網站標題:ServiceComb實戰
網站地址:http://www.xueling.net.cn/article/igpphe.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 日本公妇被公侵犯中文字幕 | 日本e片色视频 | 国产精品久久久久三级 | 中文字幕V亚洲日本在线 | 亚洲国产成人在线观看 | 国产va免费精品观看精品老师 | 久久久久久久久久久久久久久伊免 | 国产精品久久久久久久久久久新郎 | 欧美一级黄色片免费看 | 亚洲综合图区 | 国产码在线播放 | 国产精品免费视频一区 | 亚洲一区二区精彩视频 | 亚洲网址在线观看 | 亚洲黄色片一级 | 午夜老司机免费视频 | 国内自产少妇自拍区免费 | jk制服国产在线视频 | 日本丰满熟妇乱XXXXX故事 | 久久激情久久 | 成人无码区免费a片在线软件 | 国产中文字幕在线观看 | 国产日产欧产精品精品郁金香 | 中国亚洲女人69内射少妇 | 在线观看亚洲成人 | 昵图网图片大全免费 | av免费在线观看不卡 | 久久精品无码AV | 亚洲欧美日韩综合久久久久 | 香蕉久久影院 | 国产香蕉国产精品偷在线 | 国产精品欧美久久久 | www.youjizz.com国产 | 免费观看美女用震蛋喷水的视频 | 99aiav日韩黄色在线 | 无码AV人片在线观看天堂 | 久久婷婷色综合一区二区 | 国产福利免费视频 | yell视频在线观看免费 | 西行纪60集全免费播放 | 天天综合操 |