WP Cassify

plugin banner

The plugin is a JASIG CAS Client. It performs CAS authentication and autorization for WordPress.

Author:Alain-Aymerick FRANCOIS (profile at wordpress.org)
WordPress version required:4.4
WordPress version tested:6.1.4
Plugin version:2.3.1
Added to WordPress repository:05-02-2016
Last updated:11-01-2023
Rating, %:100
Rated by:15
Plugin URI:https://wpcassify.wordpress.com/
Total downloads:21 901
Active installs:800+
plugin download
Click to start download

If you’re happy with this plugin :
As a reward for my efforts, I would like to receive T-shirts (or other goodies) as gifts from the universities or companies that use it.
My size is L. Best regards.

This JASIG CAS authentication plugin has no phpCas library dependency. This is not only an authentication plugin.
You can build custom authorization rules according to cas user attributes populated. If user don’t exist in WordPress
database, it can be created automatically. There are many features. You can customize everything.

Website

https://wpcassify.wordpress.com/

Requirements

  • Require at least PHP version 7.0
  • Require at least PHP CURL package

Features included

  • SLO (Single Log Out) support (thanks to dedotombo and me)
  • Adding NCONTAINS operator (thanks to blandman)
  • Fix bug on Gateway mode (autologin) (thanks to dedotombo again). Now it’s now necessary to hack theme files to fire it.
  • Adding option logout on authentication failure to not disturb users
  • Initialize PHP session at a later stage (on wp_loaded not on init)
  • Adding some customs hooks and filters.

  • Tested with CAS Server version 4.1.4

  • Compatible with CAS Protocol version 2 and 3
  • Automatic user creation if not exist in WordPress database.
  • Synchronize WordPress User metas with CAS User attributes.
  • Add support for multivaluate cas user fields. Now multivaluate fields can be serialized to be stored in custom WP User meta.
  • Backup / Restore plugin configuration options settings
  • You can choose CAS User attributes you want to populate. Then you can access them via PHP Session.
  • Be careful, to access to CAS User Attributes from your theme file (from 1.8.4), use code below :

    <?php
        if ( isset($GLOBALS['wp-cassify']) ) {
            print_r( $GLOBALS['wp-cassify']->wp_cassify_get_cas_user_datas() );
        }
    ?>
    
  • Set up WordPress Roles to User according to CAS User attributes.

  • If plugin is network activated, you can define User Role Rule scope by blog id.
  • Authorization rule editor.
  • Compatible with WordPress Access Control Plugin.
  • Manage URL White List to bypass CAS Authentication on certain pages.
  • Much simpler bypass authentication with post method provided by Susan Boland (See online documentation). Create wordpress authentication form with redirect attribute like this :

    <?php
    
        $args = array(
            'echo'           => true,
            'remember'       => true,
            'redirect' => site_url( '/?wp_cassify_bypass=bypass' ),
            'form_id'        => 'loginform',
            'id_username'    => 'user_login',
            'id_password'    => 'user_pass',
            'id_remember'    => 'rememberme',
            'id_submit'      => 'wp-submit',
            'label_username' => __( 'Username' ),
            'label_password' => __( 'Password' ),
            'label_remember' => __( 'Remember Me' ),
            'label_log_in'   => __( 'Log In' ),
            'value_username' => '',
            'value_remember' => false
        );
    
        wp_login_form( $args ); 
    ?>
    
  • Receive email notifications when trigger is fired (after user account creation, after user login/logout).

  • Define notifications rules based on user attributes values.
  • Purge user roles before applying user role rules.
  • Define user account expiration rules bases on CAS User attributes.
  • Network activation allowed
  • You can set Service Logout URL (Needs to have CAS Server with followServiceRedirects option configured).
  • Add support for web application hosted behind a reverse proxy. (Thanks to franck86)
  • Add custom hooks : wp_cassify_after_cas_authentication, wp_cassify_before_auth_user_wordpress, wp_cassify_before_redirect, wp_cassify_after_redirect. (See online documentation)
  • Custom filter to perform custom cas server response parsing. Hook name : wp_cassify_custom_parsing_cas_xml_response (See online documentation)
  • Custom shortcode to generate CAS login/logout link into your blog. (See online documentation)
  • Debug settings, dump last xml cas server response.
  • Detect if user has already authenticated by CAS from your public pages and perform auto-login with gateway mode
  • Add ‘-IN’ and ‘-NOTIN’ operators to process array attributes values returned from CAS.
    When you have :

    $cas_user_datas['title'] = array( 'Student', 'Professor' );
    

Then you can use :

    (CAS{title} -IN "professor")

Screenshots
FAQ
ChangeLog