mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Add PAM authentication
This commit is contained in:
		
				
					committed by
					
						 Ignacio Casal Quinteiro
						Ignacio Casal Quinteiro
					
				
			
			
				
	
			
			
			
						parent
						
							2c4fb6e646
						
					
				
				
					commit
					182003aa41
				
			| @@ -30,6 +30,7 @@ type AuthenticationForm struct { | ||||
| 	SMTPPort          int    `form:"smtp_port"` | ||||
| 	TLS               bool   `form:"tls"` | ||||
| 	AllowAutoRegister bool   `form:"allowautoregister"` | ||||
| 	PAMServiceName    string | ||||
| } | ||||
|  | ||||
| func (f *AuthenticationForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { | ||||
|   | ||||
							
								
								
									
										35
									
								
								modules/auth/pam/pam.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								modules/auth/pam/pam.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| // +build !windows | ||||
|  | ||||
| // Copyright 2014 The Gogs Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package pam | ||||
|  | ||||
| import ( | ||||
| 	"errors" | ||||
|  | ||||
| 	"github.com/msteinert/pam" | ||||
| ) | ||||
|  | ||||
| func PAMAuth(serviceName, userName, passwd string) error { | ||||
| 	t, err := pam.StartFunc(serviceName, userName, func(s pam.Style, msg string) (string, error) { | ||||
| 		switch s { | ||||
| 		case pam.PromptEchoOff: | ||||
| 			return passwd, nil | ||||
| 		case pam.PromptEchoOn, pam.ErrorMsg, pam.TextInfo: | ||||
| 			return "", nil | ||||
| 		} | ||||
| 		return "", errors.New("Unrecognized PAM message style") | ||||
| 	}) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if err = t.Authenticate(0); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
							
								
								
									
										15
									
								
								modules/auth/pam/pam_stub.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								modules/auth/pam/pam_stub.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| // +build windows | ||||
|  | ||||
| // Copyright 2014 The Gogs Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package pam | ||||
|  | ||||
| import ( | ||||
| 	"errors" | ||||
| ) | ||||
|  | ||||
| func PAMAuth(serviceName, userName, passwd string) error { | ||||
| 	return errors.New("PAM not supported") | ||||
| } | ||||
		Reference in New Issue
	
	Block a user