Auth authenticates the user via an HTTP header.
(r *http.Request, usr users.Store, setting *settings.Settings, srv *settings.Server)
| 19 | |
| 20 | // Auth authenticates the user via an HTTP header. |
| 21 | func (a ProxyAuth) Auth(r *http.Request, usr users.Store, setting *settings.Settings, srv *settings.Server) (*users.User, error) { |
| 22 | username := r.Header.Get(a.Header) |
| 23 | user, err := usr.Get(srv.Root, srv.FollowExternalSymlinks, username) |
| 24 | if errors.Is(err, fberrors.ErrNotExist) { |
| 25 | return a.createUser(usr, setting, srv, username) |
| 26 | } |
| 27 | return user, err |
| 28 | } |
| 29 | |
| 30 | func (a ProxyAuth) createUser(usr users.Store, setting *settings.Settings, srv *settings.Server, username string) (*users.User, error) { |
| 31 | const randomPasswordLength = settings.DefaultMinimumPasswordLength + 10 |