AuthenticationController.java.ftl 2.7 KB
Newer Older
ibizdev's avatar
ibizdev committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<#ibiztemplate>
TARGET=PSSYSTEM
</#ibiztemplate>

package ${pub.getPKGCodeName()}.util.rest;

import ${pub.getPKGCodeName()}.util.security.AuthenticationInfo;
import ${pub.getPKGCodeName()}.util.security.AuthenticationUser;
import ${pub.getPKGCodeName()}.util.security.AuthorizationLogin;
import ${pub.getPKGCodeName()}.util.security.AuthTokenUtil;
import ${pub.getPKGCodeName()}.util.service.AuthenticationUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
sq3536's avatar
sq3536 committed
20
import org.springframework.beans.factory.annotation.Qualifier;
21
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
ibizdev's avatar
ibizdev committed
22 23 24

@RestController
@RequestMapping("/")
25
@ConditionalOnProperty( name = "ibiz.enablePermissionValid", havingValue = "false")
ibizdev's avatar
ibizdev committed
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
public class AuthenticationController
{

    @Value(${r'"${ibiz.jwt.header:Authorization}"'})
    private String tokenHeader;

    @Autowired
    private AuthTokenUtil jwtTokenUtil;

    @Autowired
    private AuthenticationUserService userDetailsService;

    @PostMapping(value = ${r'"${ibiz.auth.path:v7/login}"'})
    public ResponseEntity<AuthenticationInfo> login(@Validated @RequestBody AuthorizationLogin authorizationLogin){
        userDetailsService.resetByUsername(authorizationLogin.getUsername());
sq3536's avatar
sq3536 committed
41
        final AuthenticationUser authuserdetail = userDetailsService.loadUserByLogin(authorizationLogin.getUsername(),authorizationLogin.getPassword());
ibizdev's avatar
ibizdev committed
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
        // 生成令牌
        final String token = jwtTokenUtil.generateToken(authuserdetail);
        // 返回 token
        return ResponseEntity.ok().body(new AuthenticationInfo(token,authuserdetail));
    }

    @GetMapping(value = ${r'"${ibiz.auth.account:ibizutil/account}"'})
    public ResponseEntity<AuthenticationUser> getUserInfo(){
        UserDetails userDetails = (UserDetails)  SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        AuthenticationUser authuserdetail=new AuthenticationUser();
        if(userDetails==null){
            throw new RuntimeException("未能获取用户信息");
        }
        else if(userDetails instanceof AuthenticationUser ) {
            authuserdetail= (AuthenticationUser)userDetails;
        }
        else {
            authuserdetail= userDetailsService.loadUserByUsername(userDetails.getUsername());
        }
            return ResponseEntity.ok().body(authuserdetail);
zhouweidong's avatar
zhouweidong committed
62
    }
ibizdev's avatar
ibizdev committed
63
}