mirror of
https://github.com/fumiama/go-nd-portal.git
synced 2026-06-30 08:00:27 +08:00
feat: support sh campus login (#6)
- added login type: sh-edu, sh-dx, sh-cmcc
This commit is contained in:
@@ -35,7 +35,7 @@ func Main() {
|
|||||||
w := flag.Bool("w", false, "only display warn-or-higher-level log")
|
w := flag.Bool("w", false, "only display warn-or-higher-level log")
|
||||||
d := flag.Bool("d", false, "display debug-level log")
|
d := flag.Bool("d", false, "display debug-level log")
|
||||||
s := flag.String("s", "", "login host, auto select when empty")
|
s := flag.String("s", "", "login host, auto select when empty")
|
||||||
t := flag.String("t", "qsh-edu", "login type [qsh-edu | qsh-dx | qshd-dx | qshd-cmcc]")
|
t := flag.String("t", "qsh-edu", "login type, \n {qsh-edu | qsh-dx | qshd-dx | qshd-cmcc | sh-edu | sh-dx | sh-cmcc}")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
if *h {
|
if *h {
|
||||||
fmt.Println("Usage:")
|
fmt.Println("Usage:")
|
||||||
|
|||||||
@@ -49,16 +49,27 @@ const (
|
|||||||
LoginTypeQshDormDX LoginType = "qshd-dx"
|
LoginTypeQshDormDX LoginType = "qshd-dx"
|
||||||
// LoginTypeQshDormCMCC cmcc in Qsh new dorm area
|
// LoginTypeQshDormCMCC cmcc in Qsh new dorm area
|
||||||
LoginTypeQshDormCMCC LoginType = "qshd-cmcc"
|
LoginTypeQshDormCMCC LoginType = "qshd-cmcc"
|
||||||
|
// LoginTypeShEdu edu in Sh
|
||||||
|
LoginTypeShEdu LoginType = "sh-edu"
|
||||||
|
// LoginTypeShDX dx in Sh
|
||||||
|
LoginTypeShDX LoginType = "sh-dx"
|
||||||
|
// LoginTypeShCMCC cmcc in Sh
|
||||||
|
LoginTypeShCMCC LoginType = "sh-cmcc"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetDefaultPortalServerIP returns default PortalServerIP by LoginType
|
// GetDefaultPortalServerIP returns default PortalServerIP by LoginType
|
||||||
func (lt LoginType) GetDefaultPortalServerIP() (string, error) {
|
func (lt LoginType) GetDefaultPortalServerIP() (string, error) {
|
||||||
var sIP string
|
var sIP string
|
||||||
switch lt {
|
switch lt {
|
||||||
|
// Qsh work area
|
||||||
case LoginTypeQshEdu, LoginTypeQshDX:
|
case LoginTypeQshEdu, LoginTypeQshDX:
|
||||||
sIP = PortalServerIPQsh
|
sIP = PortalServerIPQsh
|
||||||
|
// Qsh new dorm area
|
||||||
case LoginTypeQshDormDX, LoginTypeQshDormCMCC:
|
case LoginTypeQshDormDX, LoginTypeQshDormCMCC:
|
||||||
sIP = PortalServerIPQshDorm
|
sIP = PortalServerIPQshDorm
|
||||||
|
// Sh
|
||||||
|
case LoginTypeShEdu, LoginTypeShDX, LoginTypeShCMCC:
|
||||||
|
sIP = PortalServerIPSh
|
||||||
default:
|
default:
|
||||||
return "", ErrIllegalLoginType
|
return "", ErrIllegalLoginType
|
||||||
}
|
}
|
||||||
@@ -70,6 +81,7 @@ func (lt LoginType) GetDefaultPortalServerIP() (string, error) {
|
|||||||
func (lt LoginType) ToDomainAcID() (string, string, error) {
|
func (lt LoginType) ToDomainAcID() (string, string, error) {
|
||||||
var domain, acid string
|
var domain, acid string
|
||||||
switch lt {
|
switch lt {
|
||||||
|
// Qsh work area
|
||||||
case LoginTypeQshEdu:
|
case LoginTypeQshEdu:
|
||||||
// qsh-edu is assumed that cant login from dorm
|
// qsh-edu is assumed that cant login from dorm
|
||||||
domain = PortalDomainQsh
|
domain = PortalDomainQsh
|
||||||
@@ -77,12 +89,23 @@ func (lt LoginType) ToDomainAcID() (string, string, error) {
|
|||||||
case LoginTypeQshDX:
|
case LoginTypeQshDX:
|
||||||
domain = PortalDomainQshDX
|
domain = PortalDomainQshDX
|
||||||
acid = AcIDQsh
|
acid = AcIDQsh
|
||||||
|
// Qsh new dorm area
|
||||||
case LoginTypeQshDormDX:
|
case LoginTypeQshDormDX:
|
||||||
domain = PortalDomainQshDX
|
domain = PortalDomainQshDX
|
||||||
acid = AcIDQshDorm
|
acid = AcIDQshDorm
|
||||||
case LoginTypeQshDormCMCC:
|
case LoginTypeQshDormCMCC:
|
||||||
domain = PortalDomainQshCMCC
|
domain = PortalDomainQshCMCC
|
||||||
acid = AcIDQshDorm
|
acid = AcIDQshDorm
|
||||||
|
// Sh
|
||||||
|
case LoginTypeShEdu:
|
||||||
|
domain = PortalDomainSh
|
||||||
|
acid = AcIDSh
|
||||||
|
case LoginTypeShDX:
|
||||||
|
domain = PortalDomainShDX
|
||||||
|
acid = AcIDSh
|
||||||
|
case LoginTypeShCMCC:
|
||||||
|
domain = PortalDomainShCMCC
|
||||||
|
acid = AcIDSh
|
||||||
default:
|
default:
|
||||||
return "", "", ErrIllegalLoginType
|
return "", "", ErrIllegalLoginType
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,22 @@ func TestAutoSelectServerIP(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
t.Log(u.sip)
|
t.Log(LoginTypeQshEdu, u.sip)
|
||||||
assert.Equal(t, PortalServerIPQsh, u.sip)
|
assert.Equal(t, PortalServerIPQsh, u.sip)
|
||||||
|
|
||||||
|
u, err = NewPortal("2000010101001", "12345678", "", "1.2.3.4", LoginTypeQshDormDX)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(LoginTypeQshDormDX, u.sip)
|
||||||
|
assert.Equal(t, PortalServerIPQshDorm, u.sip)
|
||||||
|
|
||||||
|
u, err = NewPortal("2000010101001", "12345678", "", "1.2.3.4", LoginTypeShEdu)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(LoginTypeShEdu, u.sip)
|
||||||
|
assert.Equal(t, PortalServerIPSh, u.sip)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestResolveLocalClientIP(t *testing.T) {
|
func TestResolveLocalClientIP(t *testing.T) {
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ const (
|
|||||||
PortalServerIPQsh = "10.253.0.237"
|
PortalServerIPQsh = "10.253.0.237"
|
||||||
// PortalServerIPQshDorm default Server IP String in Qsh new dorm area
|
// PortalServerIPQshDorm default Server IP String in Qsh new dorm area
|
||||||
PortalServerIPQshDorm = "10.253.0.235"
|
PortalServerIPQshDorm = "10.253.0.235"
|
||||||
|
// PortalServerIPSh default Server IP String in Sh
|
||||||
|
PortalServerIPSh = "192.168.9.8"
|
||||||
|
|
||||||
// PortalDomainQsh PortalDomain for qsh-edu login type
|
// PortalDomainQsh PortalDomain for qsh-edu login type
|
||||||
PortalDomainQsh = "@dx-uestc"
|
PortalDomainQsh = "@dx-uestc"
|
||||||
@@ -26,6 +28,12 @@ const (
|
|||||||
PortalDomainQshDX = "@dx"
|
PortalDomainQshDX = "@dx"
|
||||||
// PortalDomainQshCMCC PortalDomain for qshd-cmcc login type
|
// PortalDomainQshCMCC PortalDomain for qshd-cmcc login type
|
||||||
PortalDomainQshCMCC = "@cmcc"
|
PortalDomainQshCMCC = "@cmcc"
|
||||||
|
// PortalDomainSh PortalDomain for sh-edu login type
|
||||||
|
PortalDomainSh = "@uestc"
|
||||||
|
// PortalDomainShDX PortalDomain for sh-dx login type
|
||||||
|
PortalDomainShDX = "@dx"
|
||||||
|
// PortalDomainShCMCC PortalDomain for sh-cmcc login type
|
||||||
|
PortalDomainShCMCC = "@cmccgx"
|
||||||
|
|
||||||
// PortalGetChallenge GetChallenge URL
|
// PortalGetChallenge GetChallenge URL
|
||||||
PortalGetChallenge = "http://%v/cgi-bin/get_challenge?%s"
|
PortalGetChallenge = "http://%v/cgi-bin/get_challenge?%s"
|
||||||
@@ -40,6 +48,8 @@ const (
|
|||||||
AcIDQsh = "1"
|
AcIDQsh = "1"
|
||||||
// AcIDQshDorm ACID for Qsh new dorm area
|
// AcIDQshDorm ACID for Qsh new dorm area
|
||||||
AcIDQshDorm = "3"
|
AcIDQshDorm = "3"
|
||||||
|
// AcIDSh ACID for Sh
|
||||||
|
AcIDSh = "6"
|
||||||
|
|
||||||
// PortalCGI Auth CGI URL
|
// PortalCGI Auth CGI URL
|
||||||
PortalCGI = "http://%v/cgi-bin/srun_portal?%s"
|
PortalCGI = "http://%v/cgi-bin/srun_portal?%s"
|
||||||
|
|||||||
Reference in New Issue
Block a user