예제 #1
0
 def test_is_authenticated(self, mock_db, mock_get_user_session):
     mock_session = mock.MagicMock(**{const.USER_OPENID: '*****@*****.**'})
     mock_get_user_session.return_value = mock_session
     mock_get_user = mock_db.user_get
     mock_get_user.return_value = 'Dobby'
     self.assertTrue(api_utils.is_authenticated())
     mock_db.user_get.called_once_with(mock_session)
     mock_db.NotFound = db.NotFound
     mock_get_user.side_effect = mock_db.NotFound('User')
     self.assertFalse(api_utils.is_authenticated())
예제 #2
0
 def test_is_authenticated(self, mock_db, mock_get_user_session):
     mock_session = mock.MagicMock(**{const.USER_OPENID: "*****@*****.**"})
     mock_get_user_session.return_value = mock_session
     mock_get_user = mock_db.user_get
     mock_get_user.return_value = "Dobby"
     self.assertEqual(True, api_utils.is_authenticated())
     mock_db.user_get.called_once_with(mock_session)
     mock_db.NotFound = db.NotFound
     mock_get_user.side_effect = mock_db.NotFound("User")
     self.assertEqual(False, api_utils.is_authenticated())
예제 #3
0
파일: auth.py 프로젝트: pvaneck/refstack
    def signin(self):
        """Handle signin request."""
        session = api_utils.get_user_session()
        if api_utils.is_authenticated():
            pecan.redirect(CONF.ui_url)
        else:
            api_utils.delete_params_from_user_session([const.USER_OPENID])

        csrf_token = api_utils.get_token()
        session[const.CSRF_TOKEN] = csrf_token
        session.save()
        return_endpoint = parse.urljoin(CONF.api.api_url,
                                        CONF.osid.openid_return_to)
        return_to = api_utils.set_query_params(return_endpoint,
                                               {const.CSRF_TOKEN: csrf_token})

        params = {
            const.OPENID_MODE: CONF.osid.openid_mode,
            const.OPENID_NS: CONF.osid.openid_ns,
            const.OPENID_RETURN_TO: return_to,
            const.OPENID_CLAIMED_ID: CONF.osid.openid_claimed_id,
            const.OPENID_IDENTITY: CONF.osid.openid_identity,
            const.OPENID_REALM: CONF.api.api_url,
            const.OPENID_NS_SREG: CONF.osid.openid_ns_sreg,
            const.OPENID_NS_SREG_REQUIRED: CONF.osid.openid_sreg_required,
        }
        url = CONF.osid.openstack_openid_endpoint
        url = api_utils.set_query_params(url, params)
        pecan.redirect(location=url)
예제 #4
0
    def signin(self):
        """Handle signin request."""
        session = api_utils.get_user_session()
        if api_utils.is_authenticated():
            pecan.redirect(CONF.ui_url)
        else:
            api_utils.delete_params_from_user_session([const.USER_OPENID])

        csrf_token = api_utils.get_token()
        session[const.CSRF_TOKEN] = csrf_token
        session.save()
        return_endpoint = parse.urljoin(CONF.api.api_url,
                                        CONF.osid.openid_return_to)
        return_to = api_utils.set_query_params(return_endpoint,
                                               {const.CSRF_TOKEN: csrf_token})

        params = {
            const.OPENID_MODE: CONF.osid.openid_mode,
            const.OPENID_NS: CONF.osid.openid_ns,
            const.OPENID_RETURN_TO: return_to,
            const.OPENID_CLAIMED_ID: CONF.osid.openid_claimed_id,
            const.OPENID_IDENTITY: CONF.osid.openid_identity,
            const.OPENID_REALM: CONF.api.api_url,
            const.OPENID_NS_SREG: CONF.osid.openid_ns_sreg,
            const.OPENID_NS_SREG_REQUIRED: CONF.osid.openid_sreg_required,
        }
        url = CONF.osid.openstack_openid_endpoint
        url = api_utils.set_query_params(url, params)
        pecan.redirect(location=url)
예제 #5
0
    def signout(self):
        """Handle signout request."""
        if api_utils.is_authenticated():
            api_utils.delete_params_from_user_session([const.USER_OPENID])

        params = {'openid_logout': CONF.osid.openid_logout_endpoint}
        url = parse.urljoin(CONF.ui_url,
                            '/#/logout?' + parse.urlencode(params))
        pecan.redirect(url)
예제 #6
0
    def signout(self):
        """Handle signout request."""
        if api_utils.is_authenticated():
            api_utils.delete_params_from_user_session([const.USER_OPENID])

        params = {
            'openid_logout': CONF.osid.openid_logout_endpoint
        }
        url = parse.urljoin(CONF.ui_url,
                            '/#/logout?' + parse.urlencode(params))
        pecan.redirect(url)
예제 #7
0
    def test_is_authenticated(self, mock_request,
                              mock_db, mock_get_user_session):
        mock_request.headers = {}
        mock_session = {const.USER_OPENID: '*****@*****.**'}
        mock_get_user_session.return_value = mock_session
        mock_get_user = mock_db.user_get
        mock_get_user.return_value = 'FAKE_USER'
        self.assertTrue(api_utils.is_authenticated())
        mock_db.user_get.assert_called_once_with('*****@*****.**')

        mock_request.environ = {
            const.JWT_TOKEN_ENV: {const.USER_OPENID: '*****@*****.**'}}
        mock_get_user_session.return_value = {}
        mock_get_user.reset_mock()
        mock_get_user.return_value = 'FAKE_USER'
        self.assertTrue(api_utils.is_authenticated())
        mock_get_user.assert_called_once_with('*****@*****.**')

        mock_db.NotFound = db.NotFound
        mock_get_user.side_effect = mock_db.NotFound('User')
        self.assertFalse(api_utils.is_authenticated())
예제 #8
0
    def test_is_authenticated(self, mock_request, mock_db,
                              mock_get_user_session):
        mock_request.headers = {}
        mock_session = {const.USER_OPENID: '*****@*****.**'}
        mock_get_user_session.return_value = mock_session
        mock_get_user = mock_db.user_get
        mock_get_user.return_value = 'FAKE_USER'
        self.assertTrue(api_utils.is_authenticated())
        mock_db.user_get.assert_called_once_with('*****@*****.**')

        mock_request.environ = {
            const.JWT_TOKEN_ENV: {
                const.USER_OPENID: '*****@*****.**'
            }
        }
        mock_get_user_session.return_value = {}
        mock_get_user.reset_mock()
        mock_get_user.return_value = 'FAKE_USER'
        self.assertTrue(api_utils.is_authenticated())
        mock_get_user.assert_called_once_with('*****@*****.**')

        mock_db.NotFound = db.NotFound
        mock_get_user.side_effect = mock_db.NotFound('User')
        self.assertFalse(api_utils.is_authenticated())
예제 #9
0
파일: auth.py 프로젝트: pvaneck/refstack
 def signout(self):
     """Handle signout request."""
     if api_utils.is_authenticated():
         api_utils.delete_params_from_user_session([const.USER_OPENID])
     pecan.redirect(CONF.ui_url)