summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2012-07-03 13:50:26 +0200
committerAzul <azul@leap.se>2012-07-03 13:50:26 +0200
commit458975ce0e17a5d752ac99f68a23236b7f078519 (patch)
treed6ccc2502b39819c39713aa1f2afe36017f8a342
parent20bf14939fbd75e3ee0206c2bf14737e2c7ac2c2 (diff)
using json instead of xml responses
-rw-r--r--example/http-srp.rb17
-rw-r--r--example/models/user.rb4
-rw-r--r--example/views/authenticate.erb8
-rw-r--r--example/views/handshake.erb2
-rw-r--r--example/views/ok.erb2
-rw-r--r--example/views/salt.erb2
-rw-r--r--example/views/xml.erb2
7 files changed, 13 insertions, 24 deletions
diff --git a/example/http-srp.rb b/example/http-srp.rb
index ef43844..2e50cc8 100644
--- a/example/http-srp.rb
+++ b/example/http-srp.rb
@@ -1,5 +1,6 @@
require 'sinatra'
require 'pp'
+require 'json'
require 'models/user'
require 'models/log'
@@ -19,12 +20,14 @@ end
post '/register/salt/' do
Log.clear
@user = User.new(params.delete('I'))
- erb :salt, :layout => false, :content_type => :xml
+ content_type :json
+ { :salt => @user.salt.to_s(16) }.to_json
end
post '/register/user/' do
User.current.verifier = params.delete('v').hex
- erb :ok, :layout => false, :content_type => :xml
+ content_type :json
+ { :ok => true }.to_json
end
get '/login' do
@@ -35,9 +38,10 @@ end
post '/handshake/' do
@user = User.current
Log.log(:handshake, params)
- @auth = @user.initialize_auth(params)
- Log.log(:init_auth, @auth)
- erb :handshake, :layout => false, :content_type => :xml
+ @handshake = @user.initialize_auth(params)
+ Log.log(:init_auth, @handshake)
+ content_type :json
+ @handshake.to_json
end
post '/authenticate/' do
@@ -45,7 +49,8 @@ post '/authenticate/' do
Log.log(:authenticate, params)
@auth = @user.authenticate(params)
Log.log(:confirm_authentication, @auth)
- erb :authenticate, :layout => false, :content_type => :xml
+ content_type :json
+ @auth.to_json
end
get '/verify' do
diff --git a/example/models/user.rb b/example/models/user.rb
index d374d36..91bbffc 100644
--- a/example/models/user.rb
+++ b/example/models/user.rb
@@ -25,13 +25,13 @@ class User
def initialize_auth(params)
self.srp = SRP::Server.new(self.salt, self.verifier)
bb, u = self.srp.initialize_auth(params.delete('A').hex)
- return {:B => bb, :u => u}
+ return {:s => self.salt.to_s(16), :B => bb.to_s(16)}
end
def authenticate(params)
if m2 = self.srp.authenticate(params.delete('M').hex)
self.active = true
- return {:M2 => m2}
+ return {:M => m2.to_s(16)}
else
self.active = false
return {:error => "Access Denied"}
diff --git a/example/views/authenticate.erb b/example/views/authenticate.erb
deleted file mode 100644
index a6bf80d..0000000
--- a/example/views/authenticate.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<% if @auth[:M2] %>
- <M><%="%x" % [@auth[:M2]]%></M>
-<% end %>
-<% if @auth[:error] %>
- <error><%=@auth[:error]%></error>
-<% end %>
-
diff --git a/example/views/handshake.erb b/example/views/handshake.erb
deleted file mode 100644
index 49eca91..0000000
--- a/example/views/handshake.erb
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<%= %Q(<r s="%x" B="%x" />) % [@user.salt, @auth[:B]] %>
diff --git a/example/views/ok.erb b/example/views/ok.erb
deleted file mode 100644
index b0d4f93..0000000
--- a/example/views/ok.erb
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ok/>
diff --git a/example/views/salt.erb b/example/views/salt.erb
deleted file mode 100644
index 5b34b93..0000000
--- a/example/views/salt.erb
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<salt><%="%x" % @user.salt %></salt>
diff --git a/example/views/xml.erb b/example/views/xml.erb
deleted file mode 100644
index 0e2dcc2..0000000
--- a/example/views/xml.erb
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<%= yield %>