Commit 1184db28 authored by ibuler's avatar ibuler

[Update] 修改service

parent b9a7b49b
......@@ -154,7 +154,7 @@
[[projects]]
branch = "master"
digest = "1:d275874accb1537f7bd7ac28985aeb1ddc32b22884e5f57b68c32591437f822b"
digest = "1:940277eb8ecf4938e0760fecd917bdc24d45d78c22b32b83267682c3409075d2"
name = "golang.org/x/crypto"
packages = [
"curve25519",
......@@ -167,7 +167,7 @@
"ssh/terminal",
]
pruneopts = "UT"
revision = "ef0d1a6f5b87067803518089d4cbc349777a56bd"
revision = "a7099eef26a7fdc97f3ac5f5b2b61f9f136dd16f"
source = "github.com/ibuler/crypto"
[[projects]]
......@@ -200,6 +200,7 @@
"github.com/kr/pty",
"github.com/leonelquinteros/gotext",
"github.com/olekukonko/tablewriter",
"github.com/pkg/errors",
"github.com/pkg/sftp",
"github.com/satori/go.uuid",
"github.com/sirupsen/logrus",
......
......@@ -56,7 +56,7 @@ func CheckMFA(ctx ssh.Context, challenger gossh.KeyboardInteractiveChallenge) ss
if err != nil {
return ssh.AuthFailed
}
if len(answers) != 0 {
if len(answers) != 1 {
return ssh.AuthFailed
}
mfaCode := answers[0]
......@@ -77,13 +77,5 @@ func CheckMFA(ctx ssh.Context, challenger gossh.KeyboardInteractiveChallenge) ss
}
func CheckUserNeedMFA(ctx ssh.Context) (methods []string) {
username := ctx.User()
user, err := service.GetUserByUsername(username)
if err != nil {
return
}
if user.OTPLevel > 0 {
return []string{"keyboard-interactive"}
}
return
return []string{"keyboard-interactive"}
}
......@@ -3,7 +3,8 @@ package service
const (
UserAuthURL = "/api/users/v1/auth/" // post 验证用户登陆
UserProfileURL = "/api/users/v1/profile/" // 获取当前用户的基本信息
UserUserURL = "/api/users/v1/users/%s/" // 获取用户信息
UserListUrl = "/api/users/v1/users/" // 用户列表地址
UserDetailURL = "/api/users/v1/users/%s/" // 获取用户信息
UserAuthOTPURL = "/api/users/v1/otp/auth/" // 验证OTP
SystemUserAssetAuthURL = "/api/assets/v1/system-user/%s/asset/%s/auth-info/" // 该系统用户对某资产的授权
......
......@@ -31,7 +31,7 @@ func Authenticate(username, password, publicKey, remoteAddr, loginType string) (
}
func GetUserProfile(userId string) (user *model.User) {
Url := fmt.Sprintf(UserUserURL, userId)
Url := fmt.Sprintf(UserDetailURL, userId)
err := authClient.Get(Url, user)
if err != nil {
logger.Error(err)
......@@ -41,13 +41,13 @@ func GetUserProfile(userId string) (user *model.User) {
func GetProfile() (user *model.User, err error) {
err = authClient.Get(UserProfileURL, &user)
return
return user, err
}
func GetUserByUsername(username string) (user *model.User, err error) {
var users []*model.User
payload := map[string]string{"username": username}
err = authClient.Get(UserUserURL, &users, payload)
err = authClient.Get(UserListUrl, &users, payload)
if err != nil {
return
}
......@@ -64,7 +64,7 @@ func CheckUserOTP(seed, code string) (resp *AuthResp, err error) {
"seed": seed,
"otp_code": code,
}
err = client.Post(UserAuthOTPURL, data, resp)
err = client.Post(UserAuthOTPURL, data, &resp)
if err != nil {
return
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment