Add authentication support and enhance protocol handling
- **protocol/socketapi/challenge.go**: - Removed unused `GetListener` function and its associated logic. - **protocol/socketapi/handleEvent.go**: - Refactored `env.Id` references to `env.E.Id` to standardize access to event identifiers. - **app/realy/server-impl.go**: - Added `AuthRequired` method to expose server-level authentication configuration. - **app/realy/handleRelayinfo.go**: - Included `Authentication` in supported protocols. - Updated relay information to expose `AuthRequired` status in `Limitation`. - **encoders/envelopes/authenvelope/authenvelope.go**: - Introduced `Id` method for `Response` type. - **app/realy/server-publish.go**: - Refined event saving logic by replacing `chk.E` with a direct `err` check. - **app/realy/server.go**: - Added `authRequired` field in `Server` struct and integrated it into relevant methods. - **protocol/socketapi/socketapi.go**: - Introduced authentication handling in WebSocket listeners if `AuthRequired` is enabled. - **protocol/socketapi/handleAuth.go**: - Implemented authentication response validation against challenges and server URLs. - Supported logging of successes and failures. - **app/config/config.go**: - Added `AuthRequired` flag to configuration structure and environment variables. - **encoders/envelopes/eventenvelope/eventenvelope.go**: - Added `Id` method for `Submission` and `Result` types. - **interfaces/server/server.go**: - Added `AuthRequired` and `ServiceURL` methods to the interface. - **protocol/ws/listener.go**: - Added `authRequested` field and methods to track authentication requests. - **protocol/socketapi/ok.go**: - Introduced `Ok` utility functions for standard responses indicating reasons and types of errors. - **app/realy/auth.go**: - Added `ServiceURL` method to determine the relay's URL for authentication responses. - **encoders/reason/reason.go**: - Defined reusable reason templates for responses such as `auth-required` and `error`. - **protocol/socketapi/ws.go**: - Adjusted `NewListener` to handle `authRequired` flag and conditionally generate challenges.
This commit is contained in:
11
main.go
11
main.go
@@ -59,11 +59,12 @@ func main() {
|
||||
go app.MonitorResources(c)
|
||||
var server *realy.Server
|
||||
serverParams := &realy.ServerParams{
|
||||
Ctx: c,
|
||||
Cancel: cancel,
|
||||
Rl: r,
|
||||
DbPath: cfg.DataDir,
|
||||
MaxLimit: 512, // Default max limit for events
|
||||
Ctx: c,
|
||||
Cancel: cancel,
|
||||
Rl: r,
|
||||
DbPath: cfg.DataDir,
|
||||
MaxLimit: 512, // Default max limit for events
|
||||
AuthRequired: cfg.AuthRequired,
|
||||
}
|
||||
var opts []options.O
|
||||
if server, err = realy.NewServer(serverParams, opts...); chk.E(err) {
|
||||
|
||||
Reference in New Issue
Block a user