casgo

command module
v0.0.0-...-f2df810 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2015 License: ISC Imports: 3 Imported by: 0

README

CASGO CAS Authentication Server

What is CASGO?

Casgo is a simple to use, simple to deploy Single Sign On that uses the CAS protocol developed by Shawn Bayern of Yale University.

CAS Spec

Casgo implements version 1.0 of the CAS Specification as defined with a few key changes:

  • JSON is preferred over XML/plaintext responses
  • The /validate endpoint behaves as specified in CAS 1.0 (success/failure and the username of the user)
  • The /validate endpoint returns user attributes

Getting started

  1. Install your database of choice (default is RethinkDB, version 2.0+)
  2. Download the casgo binary for your operating system
  3. Ensure port 443 is open (and your database instance is at the right port, 28015 by default)
  4. Run the binary

Getting started (from source code)

  1. Install your database of choice (default is RethinkDB, version 2.0+)
  2. go get github.com/t3hmrman/casgo
  3. make (or go install/go build)
  4. Ensure port 443 is open (and your database instance is at the right port, 28015 by default)
  5. Add an exception for the included self-signed certificate
  6. casgo

Running tests

Tests are run using Ginkgo from the main directory casgo code directory, please ensure Ginkgo is installed.

Note As some tests rely on the database to be up, RethinkDB must be running.

make test

OR

cd cas && ginkgo -r

Options

Option Description
-config Specify a (JSON) configuration file for CasGo to use.

Configuration

By File

Casgo can be configured by file if you specify the -c/--config <filename> flag. See Options section for a full list of CASGO's command line options.

By ENV
Variable (json) ENV default description
host CASGO_HOST "0.0.0.0" The host on which to run casgo
port CASGO_PORT "8080" The port on which to run casgo
dbHost CASGO_DBHOST "localhost:28015" The hostname of database instance
dbName CASGO_DBNAME "casgo" The database name for casgo to use
templatesDirectory CASGO_TEMPLATES "templates/" The folder in which casgo templates reside
companyName CASGO_COMPNAME "companyABC" The database name for casgo to use
authMethod CASGO_DEFAULT_AUTH "password" The default (user) authentication method for casgo
logLevel CASGO_LOG_LVL "WARN DEBUG
tlsCertFile CASGO_TLS_CERT "fixtures/ssl/cert.pem" The TLS cert file that casgo will use
tlsKeyFile CASGO_TLS_KEY "fixtures/ssl/eckey.pem" The TLS key file that casgo will use
Database Schema

So what does the database that powers casgo look like?

Database Table Description
casgo tickets The authentication tickets currently in use by the casgo
casgo services Services authorized to use casgo
casgo users User data stored by casgo (if not using external auth)
casgo api_keys Authentication API keys (enabling non-web app authentication)
Contributing
  1. Fork the repo
  2. Install Go
  3. Install your database of choice (default is RethinkDB)
  4. Fix issues, make changes
  5. Ensure Makefile functions correctly (make all/make resources/etc)
  6. Pull Request
  7. Receive thanks from the community

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/code.google.com/p/go.crypto/bcrypt
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
_workspace/src/github.com/GeertJohan/go.rice/embedded
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
_workspace/src/github.com/cenkalti/backoff
Package backoff implements backoff algorithms for retrying operations.
Package backoff implements backoff algorithms for retrying operations.
_workspace/src/github.com/daaku/go.zipexe
Package zipexe attempts to open an executable binary file as a zip file.
Package zipexe attempts to open an executable binary file as a zip file.
_workspace/src/github.com/dancannon/gorethink
Package gorethink implements a Go driver for RethinkDB
Package gorethink implements a Go driver for RethinkDB
_workspace/src/github.com/golang/protobuf/proto
Package proto converts data structures to and from the wire format of protocol buffers.
Package proto converts data structures to and from the wire format of protocol buffers.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/gorilla/securecookie
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
_workspace/src/github.com/gorilla/sessions
Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.
Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.
_workspace/src/github.com/kardianos/osext
Extensions to the standard "os" package.
Extensions to the standard "os" package.
_workspace/src/github.com/unrolled/render
Package render is a package that provides functionality for easily rendering JSON, XML, binary data, and HTML templates.
Package render is a package that provides functionality for easily rendering JSON, XML, binary data, and HTML templates.
_workspace/src/golang.org/x/crypto/blowfish
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
cas
integration_test/Godeps/_workspace/src/code.google.com/p/go.crypto/bcrypt
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
integration_test/Godeps/_workspace/src/github.com/GeertJohan/go.rice/embedded
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
integration_test/Godeps/_workspace/src/github.com/cenkalti/backoff
Package backoff implements backoff algorithms for retrying operations.
Package backoff implements backoff algorithms for retrying operations.
integration_test/Godeps/_workspace/src/github.com/daaku/go.zipexe
Package zipexe attempts to open an executable binary file as a zip file.
Package zipexe attempts to open an executable binary file as a zip file.
integration_test/Godeps/_workspace/src/github.com/dancannon/gorethink
Package gorethink implements a Go driver for RethinkDB
Package gorethink implements a Go driver for RethinkDB
integration_test/Godeps/_workspace/src/github.com/golang/protobuf/proto
Package proto converts data structures to and from the wire format of protocol buffers.
Package proto converts data structures to and from the wire format of protocol buffers.
integration_test/Godeps/_workspace/src/github.com/gorilla/context
Package gorilla/context stores values shared during a request lifetime.
Package gorilla/context stores values shared during a request lifetime.
integration_test/Godeps/_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
integration_test/Godeps/_workspace/src/github.com/gorilla/securecookie
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
Package gorilla/securecookie encodes and decodes authenticated and optionally encrypted cookie values.
integration_test/Godeps/_workspace/src/github.com/gorilla/sessions
Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.
Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.
Extensions to the standard "os" package.
integration_test/Godeps/_workspace/src/github.com/onsi/ginkgo
Ginkgo is a BDD-style testing framework for Golang
Ginkgo is a BDD-style testing framework for Golang
integration_test/Godeps/_workspace/src/github.com/onsi/ginkgo/config
Ginkgo accepts a number of configuration options.
Ginkgo accepts a number of configuration options.
The Ginkgo CLI
integration_test/Godeps/_workspace/src/github.com/onsi/ginkgo/internal/remote
Aggregator is a reporter used by the Ginkgo CLI to aggregate and present parallel test output coherently as tests complete.
Aggregator is a reporter used by the Ginkgo CLI to aggregate and present parallel test output coherently as tests complete.
Ginkgo's Default Reporter
integration_test/Godeps/_workspace/src/github.com/onsi/gomega
Gomega is the Ginkgo BDD-style testing framework's preferred matcher library.
Gomega is the Ginkgo BDD-style testing framework's preferred matcher library.
integration_test/Godeps/_workspace/src/github.com/onsi/gomega/format
Gomega's format package pretty-prints objects.
Gomega's format package pretty-prints objects.
integration_test/Godeps/_workspace/src/github.com/onsi/gomega/gbytes
Package gbytes provides a buffer that supports incrementally detecting input.
Package gbytes provides a buffer that supports incrementally detecting input.
integration_test/Godeps/_workspace/src/github.com/onsi/gomega/gexec
Package gexec provides support for testing external processes.
Package gexec provides support for testing external processes.
integration_test/Godeps/_workspace/src/github.com/onsi/gomega/ghttp
Package ghttp supports testing HTTP clients by providing a test server (simply a thin wrapper around httptest's server) that supports registering multiple handlers.
Package ghttp supports testing HTTP clients by providing a test server (simply a thin wrapper around httptest's server) that supports registering multiple handlers.
Gomega matchers
integration_test/Godeps/_workspace/src/github.com/sclevine/agouti
Package agouti is a universal WebDriver client for Go.
Package agouti is a universal WebDriver client for Go.
integration_test/Godeps/_workspace/src/github.com/sclevine/agouti/api
Package api provides a generic, low-level WebDriver API client for Go.
Package api provides a generic, low-level WebDriver API client for Go.
integration_test/Godeps/_workspace/src/github.com/sclevine/agouti/matchers
Package matchers provides a set of Gomega-compatible matchers for use with the agouti package.
Package matchers provides a set of Gomega-compatible matchers for use with the agouti package.
integration_test/Godeps/_workspace/src/github.com/unrolled/render
Package render is a package that provides functionality for easily rendering JSON, XML, binary data, and HTML templates.
Package render is a package that provides functionality for easily rendering JSON, XML, binary data, and HTML templates.
integration_test/Godeps/_workspace/src/golang.org/x/crypto/blowfish
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.

Jump to

Keyboard shortcuts

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