crowd-auth 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,25 @@
1
+ # README
2
+
3
+ ## How-to
4
+
5
+ > require 'crowd-auth'
6
+
7
+ > c = Crowd::Auth.new
8
+ > c.crowd_url = "http://your.crowd.url:8095"
9
+ > c.crowd_app_name = "app_name"
10
+ > c.crowd_app_pass = "app_password"
11
+
12
+ > resp = c.authenticate('username', 'password')
13
+
14
+ > puts resp.code
15
+ 200
16
+
17
+ Anything but a 200 means authorization failed.
18
+
19
+ Overload `crowd_auth_uri` with your crowd's rest url.
20
+
21
+ By default, that is `/crowd/rest/usermanagement/latest/authentication`
22
+
23
+ ## Thanks
24
+
25
+ [Kastner](http://metaatem.net "Kastner"), as always for the insight and help making things cleaner.
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["Ian Meyer"]
10
10
  s.email = ["ianmmeyer@gmail.com"]
11
- s.homepage = ""
11
+ s.homepage = "https://github.com/imeyer/crowd-auth"
12
12
  s.summary = %q{Simple authentication against Atlassian Crowd}
13
13
  s.description = %q{Simple authentication against Atlassian Crowd}
14
14
 
@@ -20,4 +20,4 @@ Gem::Specification.new do |s|
20
20
  s.require_paths = ["lib"]
21
21
 
22
22
  s.add_dependency('rest-client', '>= 1.6.1')
23
- end
23
+ end
@@ -4,18 +4,21 @@ module Crowd
4
4
  # This is some kind of comment
5
5
  class Auth
6
6
  attr_accessor :crowd_url, :crowd_app_name, :crowd_app_pass, :crowd_auth_uri
7
-
7
+
8
8
  def initialize(options = {})
9
9
  options.each { |key, value| instance_variable_set("@#{key}", value) }
10
10
  @crowd_auth_uri ||= "/crowd/rest/usermanagement/latest/authentication"
11
11
  end
12
-
12
+
13
13
  def authenticate(username, password)
14
- rest_client = RestClient::Resource.new "#{@crowd_url}", :user => @crowd_app_name, :password => @crowd_app_pass
15
-
16
- resp = rest_client["#{@crowd_auth_uri}?username=#{username}"].post "{\"value\":\"#{password}\"}", :accept => "application/json", :content_type => "application/json"
17
-
18
- return resp
14
+ rest_client = RestClient::Resource.new("#{@crowd_url}", :user => @crowd_app_name, :password => @crowd_app_pass)
15
+
16
+ # Crowd returns 200 on correct authentication or 400 for incorrect
17
+ begin
18
+ return !!rest_client["#{@crowd_auth_uri}?username=#{username}"].post("{\"value\":\"#{password}\"}", :accept => "application/json", :content_type => "application/json")
19
+ rescue RestClient::BadRequest
20
+ return false
21
+ end
19
22
  end
20
23
  end
21
- end
24
+ end
@@ -1,5 +1,5 @@
1
1
  module Crowd
2
2
  module Auth
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: crowd-auth
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.3
5
+ version: 0.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ian Meyer
@@ -10,8 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-20 00:00:00 -05:00
14
- default_executable:
13
+ date: 2012-05-25 00:00:00 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: rest-client
@@ -36,12 +35,12 @@ extra_rdoc_files: []
36
35
  files:
37
36
  - .gitignore
38
37
  - Gemfile
38
+ - README.markdown
39
39
  - Rakefile
40
40
  - crowd-auth.gemspec
41
41
  - lib/crowd-auth.rb
42
42
  - lib/crowd-auth/version.rb
43
- has_rdoc: true
44
- homepage: ""
43
+ homepage: https://github.com/imeyer/crowd-auth
45
44
  licenses: []
46
45
 
47
46
  post_install_message:
@@ -64,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
63
  requirements: []
65
64
 
66
65
  rubyforge_project: crowd-auth
67
- rubygems_version: 1.5.2
66
+ rubygems_version: 1.8.15
68
67
  signing_key:
69
68
  specification_version: 3
70
69
  summary: Simple authentication against Atlassian Crowd