{"id":27290677,"url":"https://github.com/vt-middleware/cas-microstrategy-java","last_synced_at":"2025-07-25T23:03:04.350Z","repository":{"id":76668442,"uuid":"93740656","full_name":"vt-middleware/cas-microstrategy-java","owner":"vt-middleware","description":"CAS integration for Microstrategy business intelligence","archived":false,"fork":false,"pushed_at":"2017-06-08T20:31:33.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-11T21:43:55.114Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vt-middleware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-06-08T11:14:19.000Z","updated_at":"2017-06-08T18:25:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"79278f25-0f2d-48b8-b963-73242c0c800b","html_url":"https://github.com/vt-middleware/cas-microstrategy-java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vt-middleware/cas-microstrategy-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-middleware%2Fcas-microstrategy-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-middleware%2Fcas-microstrategy-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-middleware%2Fcas-microstrategy-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-middleware%2Fcas-microstrategy-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vt-middleware","download_url":"https://codeload.github.com/vt-middleware/cas-microstrategy-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-middleware%2Fcas-microstrategy-java/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267078836,"owners_count":24032310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-11T21:38:33.913Z","updated_at":"2025-07-25T23:03:04.344Z","avatar_url":"https://github.com/vt-middleware.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CAS Microstrategy Integration for Java\n\nThis project provides a servlet filter for authorization, _RequestAttributeFilter_, that complements\n[Java CAS Client](https://github.com/apereo/java-cas-client) authentication filters. The basic approach is to define\nattributes to extract from the CAS assertion that are converted to HTTP request headers. The filter supports a simple\nsyntax for decorating simple attribute values; for example, to append a domain name to created a scoped username.\n\n## Building\nThe build system is Apache Maven, so the `mvn` binary must be available and in your shell environment path. Use the \nfollowing command to build the software:\n\n    mvn clean package\n\nThat produces the file target/cas-microstrategy-java-$VERSION.jar in the current directory.\n\n## Configuration\nA prerequisite is to determine what attributes are needed from the CAS assertion, and to ensure that they are released\nto the Microstrategy application during the CAS ticket validation step. The following configuration steps explain how\nto map assertion attributes onto HTTP request headers and then how to make those request headers available to\nMicrostrategy.\n\nAdd the following servlet filter definition to the Microstrategy web.xml file:\n\n    \u003cfilter\u003e\n        \u003cfilter-name\u003eRequestAttributeFilter\u003c/filter-name\u003e\n        \u003cfilter-class\u003eedu.vt.middleware.cas.filter.RequestAttributeFilter\u003c/filter-class\u003e\n        \u003cinit-param\u003e\n          \u003cdescription\u003eWhitespace-delimited list of HTTP request header names.\u003c/description\u003e\n          \u003cparam-name\u003erequestAttributes\u003c/param-name\u003e\n          \u003cparam-value\u003e\n            MSY_USER\n            MSY_USERDN\n          \u003c/param-value\u003e\n        \u003c/init-param\u003e\n        \u003cinit-param\u003e\n          \u003cdescription\u003e\n            Whitespace-delimited list of assertion attributes or expressions.\n            Attribute names must be enclosed in braces if the value includes literal text.\n          \u003c/description\u003e\n          \u003cparam-name\u003eassertionAttributes\u003c/param-name\u003e\n          \u003cparam-value\u003e\n            uid\n            uid=[uid],ou=people,dc=vt,dc=edu\n          \u003c/param-value\u003e\n        \u003c/init-param\u003e\n    \u003c/filter\u003e\n\nUse the custom HTTP request headers in custom_security.properties:\n    LoginParam=MSY_USER\n    DistinguishedName=MSY_USERDN\n\n\nIt is vitally important that some upstream component (e.g. prior servlet filter, reverse proxy)\n**strips all client-provided headers set by _RequestAttributeFilter_** this from the request.\nWithout that protection, clients could easily spoof authorization headers. The following Apache directive\nprovides an example for a reverse proxy solution:\n\n    \u003cLocation /path/to/your/MicroStrategy\u003e\n        # Make sure the client does not try to sneak their own values in here\n        RequestHeader unset MSY_USER\n        RequestHeader unset MSY_USERDN\n    \u003c/Location\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvt-middleware%2Fcas-microstrategy-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvt-middleware%2Fcas-microstrategy-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvt-middleware%2Fcas-microstrategy-java/lists"}