mirror of
https://github.com/redmine/redmine.git
synced 2025-11-13 16:56:00 +01:00
Unpacked OpenID gem. #699
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2437 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
110
vendor/gems/ruby-openid-2.1.4/lib/openid/util.rb
vendored
Normal file
110
vendor/gems/ruby-openid-2.1.4/lib/openid/util.rb
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
require "cgi"
|
||||
require "uri"
|
||||
require "logger"
|
||||
|
||||
require "openid/extras"
|
||||
|
||||
# See OpenID::Consumer or OpenID::Server modules, as well as the store classes
|
||||
module OpenID
|
||||
class AssertionError < Exception
|
||||
end
|
||||
|
||||
# Exceptions that are raised by the library are subclasses of this
|
||||
# exception type, so if you want to catch all exceptions raised by
|
||||
# the library, you can catch OpenIDError
|
||||
class OpenIDError < StandardError
|
||||
end
|
||||
|
||||
module Util
|
||||
|
||||
BASE64_CHARS = ('ABCDEFGHIJKLMNOPQRSTUVWXYZ' \
|
||||
'abcdefghijklmnopqrstuvwxyz0123456789+/')
|
||||
BASE64_RE = Regexp.compile("
|
||||
\\A
|
||||
([#{BASE64_CHARS}]{4})*
|
||||
([#{BASE64_CHARS}]{2}==|
|
||||
[#{BASE64_CHARS}]{3}=)?
|
||||
\\Z", Regexp::EXTENDED)
|
||||
|
||||
def Util.assert(value, message=nil)
|
||||
if not value
|
||||
raise AssertionError, message or value
|
||||
end
|
||||
end
|
||||
|
||||
def Util.to_base64(s)
|
||||
[s].pack('m').gsub("\n", "")
|
||||
end
|
||||
|
||||
def Util.from_base64(s)
|
||||
without_newlines = s.gsub(/[\r\n]+/, '')
|
||||
if !BASE64_RE.match(without_newlines)
|
||||
raise ArgumentError, "Malformed input: #{s.inspect}"
|
||||
end
|
||||
without_newlines.unpack('m').first
|
||||
end
|
||||
|
||||
def Util.urlencode(args)
|
||||
a = []
|
||||
args.each do |key, val|
|
||||
val = '' unless val
|
||||
a << (CGI::escape(key) + "=" + CGI::escape(val))
|
||||
end
|
||||
a.join("&")
|
||||
end
|
||||
|
||||
def Util.parse_query(qs)
|
||||
query = {}
|
||||
CGI::parse(qs).each {|k,v| query[k] = v[0]}
|
||||
return query
|
||||
end
|
||||
|
||||
def Util.append_args(url, args)
|
||||
url = url.dup
|
||||
return url if args.length == 0
|
||||
|
||||
if args.respond_to?('each_pair')
|
||||
args = args.sort
|
||||
end
|
||||
|
||||
url << (url.include?("?") ? "&" : "?")
|
||||
url << Util.urlencode(args)
|
||||
end
|
||||
|
||||
@@logger = Logger.new(STDERR)
|
||||
@@logger.progname = "OpenID"
|
||||
|
||||
def Util.logger=(logger)
|
||||
@@logger = logger
|
||||
end
|
||||
|
||||
def Util.logger
|
||||
@@logger
|
||||
end
|
||||
|
||||
# change the message below to do whatever you like for logging
|
||||
def Util.log(message)
|
||||
logger.info(message)
|
||||
end
|
||||
|
||||
def Util.auto_submit_html(form, title='OpenID transaction in progress')
|
||||
return "
|
||||
<html>
|
||||
<head>
|
||||
<title>#{title}</title>
|
||||
</head>
|
||||
<body onload='document.forms[0].submit();'>
|
||||
#{form}
|
||||
<script>
|
||||
var elements = document.forms[0].elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
elements[i].style.display = \"none\";
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user