stopnik

module
v0.7.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2024 License: Apache-2.0

README

STOPnik

STOPnik

The simple and small OAuth2 | OpenId Connect server that secures applications without hassle.

STOPnik does not have any persistence layer and will only work in-memory with the clients and users defined in the configuration file (YAML). When restarted, all issued tokens will become invalid/forgotten by STOPnik.

This project was used to learn OAuth 2.0, OpenId Connect Core 1.0 and Go.

The logo mascot was mostly inspired by the nice work of gopherize.me and redrawn by hand as a vector graphic with additional body and a cool hat.

build report

STOPnik alternatives

The awesome work of other servers is very appreciated, most of them were the inspiration for this small project! ♥️

They add features like persistence and access to user directories like LDAP.

Specifications Implementation
The OAuth 2.0 Authorization Framework Yes
Proof Key for Code Exchange by OAuth Public Clients Yes
OAuth 2.0 Token Introspection Yes
OAuth 2.0 Token Revocation Yes
JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants Yes
JSON Web Token (JWT) Dependency
OAuth 2.0 Authorization Server Metadata Partially
OAuth 2.0 Device Authorization Grant Planned
The OAuth 2.0 Authorization Framework: Bearer Token Usage Planned
Resource Indicators for OAuth 2.0 Planned
OAuth 2.0 Authorization Server Issuer Identification Planned
OpenID Connect Core 1.0 Partially
OpenID Connect Discovery 1.0 Partially
OpenID Connect Session Management 1.0 Planned
OpenID Connect Front-Channel Logout 1.0 Planned

Documentation

More details about STOPnik can be found at https://stopnik.webish.dev/

Build

Requires Git and Go >=1.23 to be installed.

To build STOPnik the repository should be cloned and the build command executed.

git clone https://github.com/webishdev/stopnik.git
cd stopnik
go build github.com/webishdev/stopnik/cmd/stopnik

And then start STOPnik with

./stopnik

Test

Execute tests inside the repository root folder with

go test ./...

To get access to the HTML coverage report the following script can be executed

./test.sh html

The coverage report will be created in the .test_coverage folder

License

The project is licensed under the Apache License, Version 2.0.

Directories

Path Synopsis
cmd
internal
config
Package config implements general handling for configuration files and adds definition for the configuration file YAML structure.
Package config implements general handling for configuration files and adds definition for the configuration file YAML structure.
crypto
Package crypto implements security and crypto related functions.
Package crypto implements security and crypto related functions.
endpoint
Package endpoint contains a collection of constants to define the endpoints provided by STOPnik.
Package endpoint contains a collection of constants to define the endpoints provided by STOPnik.
system
Package system implements some OS related helper functions.
Package system implements some OS related helper functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL