casgo

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

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

Go to latest
Published: Feb 15, 2016 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 (deploying an instance of Casgo)

  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

Contributing to Casgo (setting up your local development environment)

  1. Install your database of choice (default is RethinkDB, version 2.0+)
  2. Install bower
  3. bower install
  4. Install go.rice
  5. go get github.com/t3hmrman/casgo
  6. make all (or go install/go build)
  7. Ensure port 443 is open (and your database instance is at the right port, 28015 by default)
  8. casgo

NOTE - You may have to add an exception for the included self-signed certificate

You may also find it helpful to install Gin

Running tests

  1. (If using RethinkDB) Download the RethinkDB python driver
  2. Run load-test-fixtures.sh to load a running RethinkDB instance with fixture data.
  3. Install ginkgo and agouti
  4. ginkgo -r (from the main casgo directory)

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
Contributing
  1. Fork the repo
  2. Follow the instructions for contributing to Casgo
  3. Fix issues, make changes
  4. Run tests, ensure make targets are functional
  5. Pull Request
  6. 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 Current version: v0.7.1 (RethinkDB v2.0) For more in depth information on how to use RethinkDB check out the API docs at http://rethinkdb.com/api
Package gorethink implements a Go driver for RethinkDB Current version: v0.7.1 (RethinkDB v2.0) For more in depth information on how to use RethinkDB check out the API docs at http://rethinkdb.com/api
_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
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.
Godeps/_workspace/src/github.com/Sirupsen/logrus
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
Godeps/_workspace/src/github.com/cenkalti/backoff
Package backoff implements backoff algorithms for retrying operations.
Package backoff implements backoff algorithms for retrying operations.
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.
Godeps/_workspace/src/github.com/dancannon/gorethink
Package gorethink implements a Go driver for RethinkDB Current version: v1.1.4 (RethinkDB v2.1) For more in depth information on how to use RethinkDB check out the API docs at http://rethinkdb.com/api
Package gorethink implements a Go driver for RethinkDB Current version: v1.1.4 (RethinkDB v2.1) For more in depth information on how to use RethinkDB check out the API docs at http://rethinkdb.com/api
Godeps/_workspace/src/github.com/dancannon/gorethink/ql2
Package ql2 is a generated protocol buffer package.
Package ql2 is a generated protocol buffer package.
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.
Godeps/_workspace/src/github.com/golang/protobuf/proto/proto3_proto
Package proto3_proto is a generated protocol buffer package.
Package proto3_proto is a generated protocol buffer package.
Godeps/_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
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.
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.
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.
Godeps/_workspace/src/github.com/kardianos/osext
Extensions to the standard "os" package.
Extensions to the standard "os" package.
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.
Godeps/_workspace/src/golang.org/x/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.
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.
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 Current version: v0.7.1 (RethinkDB v2.0) For more in depth information on how to use RethinkDB check out the API docs at http://rethinkdb.com/api
Package gorethink implements a Go driver for RethinkDB Current version: v0.7.1 (RethinkDB v2.0) For more in depth information on how to use RethinkDB check out the API docs at http://rethinkdb.com/api
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 The godoc documentation describes Ginkgo's API.
Ginkgo is a BDD-style testing framework for Golang The godoc documentation describes Ginkgo's API.
integration_test/Godeps/_workspace/src/github.com/onsi/ginkgo/config
Ginkgo accepts a number of configuration options.
Ginkgo accepts a number of configuration options.
integration_test/Godeps/_workspace/src/github.com/onsi/ginkgo/ginkgo
The Ginkgo CLI The Ginkgo CLI is fully documented [here](http://onsi.github.io/ginkgo/#the_ginkgo_cli) You can also learn more by running: ginkgo help Here are some of the more commonly used commands: To install: go install github.com/onsi/ginkgo/ginkgo To run tests: ginkgo To run tests in all subdirectories: ginkgo -r To run tests in particular packages: ginkgo <flags> /path/to/package /path/to/another/package To pass arguments/flags to your tests: ginkgo <flags> <packages> -- <pass-throughs> To run tests in parallel ginkgo -p this will automatically detect the optimal number of nodes to use.
The Ginkgo CLI The Ginkgo CLI is fully documented [here](http://onsi.github.io/ginkgo/#the_ginkgo_cli) You can also learn more by running: ginkgo help Here are some of the more commonly used commands: To install: go install github.com/onsi/ginkgo/ginkgo To run tests: ginkgo To run tests in all subdirectories: ginkgo -r To run tests in particular packages: ginkgo <flags> /path/to/package /path/to/another/package To pass arguments/flags to your tests: ginkgo <flags> <packages> -- <pass-throughs> To run tests in parallel ginkgo -p this will automatically detect the optimal number of nodes to use.
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.
integration_test/Godeps/_workspace/src/github.com/onsi/ginkgo/reporters
Ginkgo's Default Reporter A number of command line flags are available to tweak Ginkgo's default output.
Ginkgo's Default Reporter A number of command line flags are available to tweak Ginkgo's default output.
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.
integration_test/Godeps/_workspace/src/github.com/onsi/gomega/matchers
Gomega matchers This package implements the Gomega matchers and does not typically need to be imported.
Gomega matchers This package implements the Gomega matchers and does not typically need to be imported.
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