From 4d26da545d8df85917b06cd603ffa6e92fd431e5 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 20 Dec 2008 01:20:40 +0000 Subject: [PATCH] * ReCommit the OpenID patch with a few less dependencies. * Removes all references to ASP.NET (System.Web.UI,*) * Removes all references to System.Web.Mobile --- OpenSim/Framework/OpenJpeg/bio.cs | 138 +++++++++ OpenSim/Framework/OpenJpeg/fix.cs | 16 + OpenSim/Framework/OpenJpeg/int_.cs | 58 ++++ OpenSim/Framework/OpenJpeg/j2k.cs | 158 ++++++++++ OpenSim/Framework/OpenJpeg/openjpeg.cs | 358 +++++++++++++++++++++++ OpenSim/Framework/OpenJpeg/pi.cs | 48 +++ OpenSim/Grid/UserServer/Main.cs | 6 + OpenSim/Grid/UserServer/OpenIdService.cs | 339 +++++++++++++++++++++ ThirdPartyLicenses/DotNetOpenid.txt | 10 + bin/DotNetOpenId.dll | Bin 0 -> 281088 bytes prebuild.xml | 2 + 11 files changed, 1133 insertions(+) create mode 100644 OpenSim/Framework/OpenJpeg/bio.cs create mode 100644 OpenSim/Framework/OpenJpeg/fix.cs create mode 100644 OpenSim/Framework/OpenJpeg/int_.cs create mode 100644 OpenSim/Framework/OpenJpeg/j2k.cs create mode 100644 OpenSim/Framework/OpenJpeg/openjpeg.cs create mode 100644 OpenSim/Framework/OpenJpeg/pi.cs create mode 100644 OpenSim/Grid/UserServer/OpenIdService.cs create mode 100644 ThirdPartyLicenses/DotNetOpenid.txt create mode 100644 bin/DotNetOpenId.dll diff --git a/OpenSim/Framework/OpenJpeg/bio.cs b/OpenSim/Framework/OpenJpeg/bio.cs new file mode 100644 index 0000000000..4f095add03 --- /dev/null +++ b/OpenSim/Framework/OpenJpeg/bio.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Framework.OpenJpeg +{ + public static class bio + { + + public static opj_bio bio_create() + { + opj_bio bio = new opj_bio(); + return bio; + } + + public static void bio_destroy(opj_bio bio) + { + // not needed on C# + } + + public static int bio_numbytes(opj_bio bio) + { + return (bio.bp - bio.start); + } + + public static void bio_init_enc(opj_bio bio, sbyte bp, int len) + { + bio.start = (byte)bp; + bio.end = (byte)(bp + (byte)len); + bio.bp = (byte)bp; + bio.buf = 0; + bio.ct = 8; + } + + public static void bio_init_dec(opj_bio bio, sbyte bp, int len) + { + bio.start = (byte)bp; + bio.end = (byte)(bp + len); + bio.bp = (byte)bp; + bio.buf = 0; + bio.ct = 0; + } + + public static void bio_write(opj_bio bio, int v, int n) + { + for (int i = n - 1; i >= 0; i--) + bio_putbit(bio, (v >> i) & 1); + } + + public static int bio_read(opj_bio bio, int n) + { + int v = 0; + for (int i = n - 1; i >= 0; i--) + v += bio_getbit(bio) << i; + + return v; + } + + public static int bio_flush(opj_bio bio) + { + bio.ct = 0; + if (bio_byteout(bio) != 0) + return 1; + + if (bio.ct == 7) + { + bio.ct = 0; + if (bio_byteout(bio) != 0) + return 1; + } + return 0; + } + + public static int bio_inalign(opj_bio bio) + { + bio.ct = 0; + if ((bio.buf & 0xff) == 0xff) + { + if (bio_bytein(bio) != 0) + return 1; + bio.ct = 0; + } + return 0; + } + + private static int bio_bytein(opj_bio bio) + { + bio.buf = (bio.buf << 8) & 0xffff; + bio.ct = bio.buf == 0xff00 ? 7 : 8; + if (bio.bp >= bio.end) + return 1; + bio.buf |= bio.bp++; + + return 0; + } + + private static int bio_byteout(opj_bio bio) + { + bio.buf = (bio.buf << 8) & 0xffff; + bio.ct = bio.buf == 0xff00 ? 7 : 8; + if (bio.bp >= bio.end) + return 1; + + bio.bp = (byte)(bio.buf >> 8); + bio.bp++; + return 0; + } + + private static void bio_putbit(opj_bio bio, int b) + { + if (bio.ct == 0) + bio_byteout(bio); + + bio.ct--; + bio.buf |= (byte)(b << bio.ct); + + } + + private static int bio_getbit(opj_bio bio) + { + if (bio.ct == 0) + bio_bytein(bio); + bio.ct--; + + return (int)((bio.buf >> bio.ct) & 1); + } + + } + + public struct opj_bio + { + public byte start; + public byte end; + public byte bp; + public uint buf; + public int ct; + } +} diff --git a/OpenSim/Framework/OpenJpeg/fix.cs b/OpenSim/Framework/OpenJpeg/fix.cs new file mode 100644 index 0000000000..76d315904c --- /dev/null +++ b/OpenSim/Framework/OpenJpeg/fix.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Framework.OpenJpeg +{ + public static class fix + { + public static int fix_mul(int a, int b) + { + long temp = (long)a * (long)b; + temp += temp & 4096; + return (int)(temp >> 13); + } + } +} diff --git a/OpenSim/Framework/OpenJpeg/int_.cs b/OpenSim/Framework/OpenJpeg/int_.cs new file mode 100644 index 0000000000..dc71728f5a --- /dev/null +++ b/OpenSim/Framework/OpenJpeg/int_.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Framework.OpenJpeg +{ + public static class int_ + { + public static int int_min(int a, int b) + { + return a < b ? a : b; + } + + public static int int_max(int a, int b) + { + return (a > b) ? a : b; + } + + public static int int_clamp(int a, int min, int max) + { + if (a < min) + return min; + if (a > max) + return max; + + return a; + } + + public static int int_abs(int a) + { + return a < 0 ? -a : a; + } + + public static int int_ceildiv(int a, int b) + { + return (a + b - 1) / b; + } + + public static int int_ceildivpow2(int a, int b) + { + return (a + (1 << b) - 1) >> b; + } + + public static int int_floordivpow2(int a, int b) + { + return a >> b; + } + + public static int int_floorlog2(int a) + { + for (int l=0; a > 1; l++) + a >>= 1; + + return 1; + } + + } +} diff --git a/OpenSim/Framework/OpenJpeg/j2k.cs b/OpenSim/Framework/OpenJpeg/j2k.cs new file mode 100644 index 0000000000..f655364d22 --- /dev/null +++ b/OpenSim/Framework/OpenJpeg/j2k.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Framework.OpenJpeg +{ + + public static class j2k + { + } + + public enum J2K_STATUS + { + J2K_STATE_MHSOC = 0x0001, /**< a SOC marker is expected */ + J2K_STATE_MHSIZ = 0x0002, /**< a SIZ marker is expected */ + J2K_STATE_MH = 0x0004, /**< the decoding process is in the main header */ + J2K_STATE_TPHSOT = 0x0008, /**< the decoding process is in a tile part header and expects a SOT marker */ + J2K_STATE_TPH = 0x0010, /**< the decoding process is in a tile part header */ + J2K_STATE_MT = 0x0020, /**< the EOC marker has just been read */ + J2K_STATE_NEOC = 0x0040, /**< the decoding process must not expect a EOC marker because the codestream is truncated */ + J2K_STATE_ERR = 0x0080 /**< the decoding process has encountered an error */ + } + + public enum J2K_T2_MODE + { + THRESH_CALC = 0, /** Function called in Rate allocation process*/ + FINAL_PASS = 1 /** Function called in Tier 2 process*/ + } + + public struct opj_stepsize + { + public int expn; + public int mant; + } + + public struct opj_tccp + { + public int csty; + public int numresolutions; + public int cblkw; + public int cblkh; + public int cblksty; + public int qmfbid; + public int qntsty; + /// + /// don't forget to initialize 97 elements + /// + public opj_stepsize[] stepsizes; + public int numgbits; + public int roishift; + /// + /// Don't forget to initialize 33 elements + /// + public int[] prcw; + + } + + public struct opj_tcp + { + public int first; + public int csty; + public PROG_ORDER prg; + public int numlayers; + public int mct; + /// + /// don't forget to initialize to 100 + /// + public float[] rates; + public int numpocs; + public int POC; + /// + /// Don't forget to initialize to 32 + /// + public opj_poc[] pocs; + public byte ppt_data; + public byte ppt_data_first; + public int ppt; + public int ppt_store; + public int ppt_len; + /// + /// Don't forget to initialize 100 elements + /// + public float[] distoratio; + public opj_tccp tccps; + + } + + public struct opj_cp + { + public CINEMA_MODE cinema; + public int max_comp_size; + public int img_size; + public RSIZ_CAPABILITIES rsiz; + public sbyte tp_on; + public sbyte tp_flag; + public int tp_pos; + public int distro_alloc; + public int fixed_alloc; + public int fixed_quality; + public int reduce; + public int layer; + public LIMIT_DECODING limit_decoding; + public int tx0; + public int ty0; + public int tdx; + public int tdy; + public sbyte? comment; + public int tw; + public int th; + public int? tileno; + public byte ppm_data; + public byte ppm_data_first; + public int ppm; + public int ppm_store; + public int ppm_previous; + public int ppm_len; + public opj_tcp tcps; + public int matrice; + } + + public static class j2kdefines + { + public const uint J2K_CP_CSTY_PRT = 0x01; + public const uint J2K_CP_CSTY_SOP = 0x02; + public const uint J2K_CP_CSTY_EPH = 0x04; + public const uint J2K_CCP_CSTY_PRT = 0x01; + public const uint J2K_CCP_CBLKSTY_LAZY = 0x01; + public const uint J2K_CCP_CBLKSTY_RESET = 0x02; + public const uint J2K_CCP_CBLKSTY_TERMALL = 0x04; + public const uint J2K_CCP_CBLKSTY_VSC = 0x08; + public const uint J2K_CCP_CBLKSTY_PTERM =0x10; + public const uint J2K_CCP_CBLKSTY_SEGSYM = 0x20; + public const uint J2K_CCP_QNTSTY_NOQNT = 0; + public const uint J2K_CCP_QNTSTY_SIQNT = 1; + public const uint J2K_CCP_QNTSTY_SEQNT = 2; + + public const uint J2K_MS_SOC = 0xff4f; /**< SOC marker value */ + public const uint J2K_MS_SOT = 0xff90; /**< SOT marker value */ + public const uint J2K_MS_SOD = 0xff93; /**< SOD marker value */ + public const uint J2K_MS_EOC = 0xffd9; /**< EOC marker value */ + public const uint J2K_MS_SIZ = 0xff51; /**< SIZ marker value */ + public const uint J2K_MS_COD = 0xff52; /**< COD marker value */ + public const uint J2K_MS_COC = 0xff53; /**< COC marker value */ + public const uint J2K_MS_RGN = 0xff5e; /**< RGN marker value */ + public const uint J2K_MS_QCD = 0xff5c; /**< QCD marker value */ + public const uint J2K_MS_QCC = 0xff5d; /**< QCC marker value */ + public const uint J2K_MS_POC = 0xff5f; /**< POC marker value */ + public const uint J2K_MS_TLM = 0xff55; /**< TLM marker value */ + public const uint J2K_MS_PLM = 0xff57; /**< PLM marker value */ + public const uint J2K_MS_PLT = 0xff58; /**< PLT marker value */ + public const uint J2K_MS_PPM = 0xff60; /**< PPM marker value */ + public const uint J2K_MS_PPT = 0xff61; /**< PPT marker value */ + public const uint J2K_MS_SOP = 0xff91; /**< SOP marker value */ + public const uint J2K_MS_EPH = 0xff92; /**< EPH marker value */ + public const uint J2K_MS_CRG = 0xff63; /**< CRG marker value */ + public const uint J2K_MS_COM = 0xff64; /**< COM marker value */ + } +} diff --git a/OpenSim/Framework/OpenJpeg/openjpeg.cs b/OpenSim/Framework/OpenJpeg/openjpeg.cs new file mode 100644 index 0000000000..2d5e4b5437 --- /dev/null +++ b/OpenSim/Framework/OpenJpeg/openjpeg.cs @@ -0,0 +1,358 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Framework.OpenJpeg +{ + public class openjpeg + { + public openjpeg() + { + + + } + } + + public enum PROG_ORDER + { + PROG_UNKNOWN = -1, + LRCP = 0, + RLCP = 1, + RPCL = 2, + PCRL = 3, + CPRL = 4 + } + + public enum RSIZ_CAPABILITIES + { + STD_RSIZ = 0, + CINEMA2K = 3, + CINEMA4K = 4 + } + + public enum CINEMA_MODE + { + OFF = 0, + CINEMA2K_24 = 1, + CINEMA2K_48 = 2, + CINEMA4K_24 = 3 + } + + public enum COLOR_SPACE + { + CLRSPC_UNKNOWN = -1, + CLRSPC_SRGB = 1, + CLRSPC_GRAY = 2, + CLRSPC_SYCC = 3 + } + + public enum CODEC_FORMAT + { + CODEC_UNKNOWN = -1, + CODEC_J2K = 0, + CODEC_JPT = 1, + CODEC_JP2 = 2 + } + + public enum LIMIT_DECODING + { + NO_LIMITATION = 0, + LIMIT_TO_MAIN_HEADER=1, + DECODE_ALL_BUT_PACKETS = 2 + } + + public struct opj_poc + { + public int resno0, compno0; + public int layno1, resno1, compno1; + public int layno0, precno0, precno1; + public PROG_ORDER prg1, prg; + /// + /// Don't forget to initialize with 5 elements + /// + public sbyte[] progorder; + public int tile; + public int tx0, tx1, ty0, ty1; + public int layS, resS, copmS, prcS; + public int layE, resE, compE, prcE; + public int txS, txE, tyS, tyE, dx, dy; + public int lay_t, res_t, comp_t, prc_t, tx0_t, ty0_t; + } + + public struct opj_cparameters + { + public bool tile_size_on; + public int cp_tx0; + public int cp_ty0; + public int cp_tdx; + public int cp_tdy; + public int cp_disto_alloc; + public int cp_fixed_alloc; + public int cp_fixed_wuality; + public int cp_matrice; + public sbyte cp_comment; + public int csty; + public PROG_ORDER prog_order; + + /// + /// Don't forget to initialize 32 elements + /// + public opj_poc[] POC; + public int numpocs; + public int tcp_numlayers; + /// + /// Don't forget to intitialize 100 elements + /// + public float[] tcp_rates; + /// + /// Don't forget to initialize 100 elements + /// + public float[] tcp_distoratio; + public int numresolution; + public int cblockw_init; + public int cblockh_init; + public int mode; + public int irreversible; + public int roi_compno; + public int roi_shift; + public int res_spec; + + /// + /// Don't forget to initialize 33 elements + /// + public int[] prc_init; + /// + /// Don't forget to initialize 33 elements + /// + public int[] prch_init; + + public string infile; + public string outfile; + public int index_on; + public string index; + public int image_offset_x0; + public int image_offset_y0; + public int subsampling_dx; + public int subsampling_dy; + public int decod_format; + public int cod_format; + public bool jpwl_epc_on; + public int jpwl_hprot_MH; + /// + /// Don't forget to initialize 16 elements + /// + public int[] jpwl_hprot_TPH_tileno; + /// + /// Don't forget to initialize 16 elements + /// + public int[] jpwl_hprot_TPH; + + /// + /// Don't forget to initialize 16 elements + /// + public int[] jpwl_pprot_tileno; + public int[] jpwl_pprot_packno; + public int[] jpwl_pprot; + public int jpwl_sens_size; + public int jpwl_sense_addr; + public int jpwl_sens_range; + public int jpwl_sens_MH; + + /// + /// Don't forget to initialize 16 elements + /// + public int[] jpwl_sens_TPH_tileno; + + /// + /// Don't forget to initialize 16 elements + /// + public int[] jpwl_sens_TPH; + public CINEMA_MODE cp_cinema; + public int max_comp_size; + public sbyte tp_on; + public sbyte tp_flag; + public sbyte tcp_mct; + } + + public struct opj_dparameters + { + public int cp_reduce; + public int cp_layer; + public string infile; + public string outfile; + public int decod_format; + public int cod_format; + public bool jpwl_correct; + public int jpwl_exp_comps; + public int jpwl_max_tiles; + public LIMIT_DECODING cp_limit_decoding; + + } + + public struct opj_common_fields + { + public bool is_decompressor; + public CODEC_FORMAT codec_format; + } + + public struct opj_common_struct + { + public opj_common_fields flds; + } + + public struct opj_cinfo + { + public opj_common_fields flds; + } + public struct opj_dinfo + { + public opj_common_fields flds; + } + + public struct opj_cio + { + public opj_common_struct cinfo; + public int openmode; + public byte buffer; + public int length; + public byte start; + public byte end; + public byte bp; + } + + public struct opj_image_comp + { + public int dx; + public int dy; + public int w; + public int h; + public int x0; + public int y0; + public int prec; + public int bpp; + public int sgnd; + public int resno_decoded; + public int factor; + public int data; + } + + public struct opj_image + { + public int x0; + public int y0; + public int x1; + public int y1; + public int numcomps; + public COLOR_SPACE color_space; + public opj_image_comp comps; + } + + public struct opj_image_comptparm + { + public int dx; + public int dy; + public int w; + public int h; + public int x0; + public int y0; + public int prec; + public int bpp; + public int sgnd; + } + + public struct opj_packet_info + { + public int start_pos; + public int end_ph_pos; + public int end_pos; + public double disto; + } + + public struct opj_tp_info + { + public int tp_start_pos; + public int tp_end_header; + public int tp_end_pos; + public int tp_start_pack; + public int tp_numpacks; + } + + public struct opj_tile_info + { + public double thresh; + public int tileno; + public int start_pos; + public int end_header; + public int end_pos; + /// + /// Don't forget to initialize 33 elements + /// + public int[] pw; + /// + /// Don't forget to initialize 33 elements + /// + public int[] ph; + /// + /// Don't forget to initialize 33 elements + /// + public int[] pdx; + /// + /// Don't forget to initialize 33 elements + /// + public int[] pdy; + + public opj_packet_info packet; + public int numpix; + public double distotile; + public int num_tps; + public opj_tp_info tp; + } + + public struct opj_marker_info_t + { + public ushort type; + public int pos; + public int len; + } + + public struct opj_codestream_info + { + public double D_max; + public int packno; + public int index_write; + public int image_w; + public int image_h; + + public PROG_ORDER prog; + + public int tile_x; + public int tile_y; + public int tile_Ox; + public int tile_Oy; + public int tw; + public int numcomps; + public int numlayers; + public int numdecompos; + public int marknum; + public opj_marker_info_t marker; + public int maxmarknum; + public int main_head_start; + public int main_head_end; + public int codestream_size; + public opj_tile_info tile; + + } + + + + + + + public static class opj_defines + { + public const int OPJ_STREAM_READ = 0x0001; + public const int OPJ_STREAM_WRITE = 0x0002; + + } + +} diff --git a/OpenSim/Framework/OpenJpeg/pi.cs b/OpenSim/Framework/OpenJpeg/pi.cs new file mode 100644 index 0000000000..f7e211fe23 --- /dev/null +++ b/OpenSim/Framework/OpenJpeg/pi.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Framework.OpenJpeg +{ + public static class pi + { + } + + public struct opj_pi_resolution + { + public int pdx, pdy; + public int pw, ph; + } + + public struct opj_pi_comp + { + public int dx, dy; + public int numresolutions; + public opj_pi_resolution resolutions; + } + + public struct obj_pi_iterator + { + public sbyte tp_on; + public short include; + public int step_l; + public int step_r; + public int step_c; + public int step_p; + public int compno; + public int resno; + public int precno; + public int layno; + public int first; + public opj_poc poc; + public int numcomps; + public opj_pi_comp comps; + + public int tx0, ty0, tx1, ty1; + public int x, y, dx, dy; + } + + + + +} diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index a001a6f42f..f688e4c2eb 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs @@ -187,6 +187,12 @@ namespace OpenSim.Grid.UserServer new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod)); m_httpServer.AddXmlRPCHandler("update_user_profile", m_userManager.XmlRpcResponseXmlRPCUpdateUserProfile); + + // Handler for OpenID avatar identity pages + m_httpServer.AddStreamHandler(new OpenIdStreamHandler("GET", "/users/", m_loginService)); + // Handlers for the OpenID endpoint server + m_httpServer.AddStreamHandler(new OpenIdStreamHandler("POST", "/openid/server/", m_loginService)); + m_httpServer.AddStreamHandler(new OpenIdStreamHandler("GET", "/openid/server/", m_loginService)); } public void do_create(string[] args) diff --git a/OpenSim/Grid/UserServer/OpenIdService.cs b/OpenSim/Grid/UserServer/OpenIdService.cs new file mode 100644 index 0000000000..695968fce6 --- /dev/null +++ b/OpenSim/Grid/UserServer/OpenIdService.cs @@ -0,0 +1,339 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.IO; +using System.Net; +using System.Web; +using System.Text; +using DotNetOpenId; +using DotNetOpenId.Provider; +using log4net; +using OpenSim.Framework; +using OpenSim.Framework.Servers; + +namespace OpenSim.Grid.UserServer +{ + /// + /// Temporary, in-memory store for OpenID associations + /// + public class ProviderMemoryStore : IAssociationStore + { + private class AssociationItem + { + public AssociationRelyingPartyType DistinguishingFactor; + public string Handle; + public DateTime Expires; + public byte[] PrivateData; + } + + Dictionary m_store = new Dictionary(); + SortedList m_sortedStore = new SortedList(); + object m_syncRoot = new object(); + + #region IAssociationStore Members + + public void StoreAssociation(AssociationRelyingPartyType distinguishingFactor, Association assoc) + { + AssociationItem item = new AssociationItem(); + item.DistinguishingFactor = distinguishingFactor; + item.Handle = assoc.Handle; + item.Expires = assoc.Expires.ToLocalTime(); + item.PrivateData = assoc.SerializePrivateData(); + + lock (m_syncRoot) + { + m_store[item.Handle] = item; + m_sortedStore[item.Expires] = item; + } + } + + public Association GetAssociation(AssociationRelyingPartyType distinguishingFactor) + { + lock (m_syncRoot) + { + if (m_sortedStore.Count > 0) + { + AssociationItem item = m_sortedStore.Values[m_sortedStore.Count - 1]; + return Association.Deserialize(item.Handle, item.Expires.ToUniversalTime(), item.PrivateData); + } + else + { + return null; + } + } + } + + public Association GetAssociation(AssociationRelyingPartyType distinguishingFactor, string handle) + { + AssociationItem item; + bool success = false; + lock (m_syncRoot) + success = m_store.TryGetValue(handle, out item); + + if (success) + return Association.Deserialize(item.Handle, item.Expires.ToUniversalTime(), item.PrivateData); + else + return null; + } + + public bool RemoveAssociation(AssociationRelyingPartyType distinguishingFactor, string handle) + { + lock (m_syncRoot) + { + for (int i = 0; i < m_sortedStore.Values.Count; i++) + { + AssociationItem item = m_sortedStore.Values[i]; + if (item.Handle == handle) + { + m_sortedStore.RemoveAt(i); + break; + } + } + + return m_store.Remove(handle); + } + } + + public void ClearExpiredAssociations() + { + lock (m_syncRoot) + { + List itemsCopy = new List(m_sortedStore.Values); + DateTime now = DateTime.Now; + + for (int i = 0; i < itemsCopy.Count; i++) + { + AssociationItem item = itemsCopy[i]; + + if (item.Expires <= now) + { + m_sortedStore.RemoveAt(i); + m_store.Remove(item.Handle); + } + } + } + } + + #endregion + } + + public class OpenIdStreamHandler : IStreamHandler + { + #region HTML + + /// Login form used to authenticate OpenID requests + const string LOGIN_PAGE = +@" +OpenSim OpenID Login + +

OpenSim Login

+
+ + + + +
+ +"; + + /// Page shown for a valid OpenID identity + const string OPENID_PAGE = +@" + +{2} {3} + + +OpenID identifier for {2} {3} + +"; + + /// Page shown for an invalid OpenID identity + const string INVALID_OPENID_PAGE = +@"Identity not found +Invalid OpenID identity"; + + /// Page shown if the OpenID endpoint is requested directly + const string ENDPOINT_PAGE = +@"OpenID Endpoint +This is an OpenID server endpoint, not a human-readable resource. +For more information, see http://openid.net/. +"; + + #endregion HTML + + public string ContentType { get { return m_contentType; } } + public string HttpMethod { get { return m_httpMethod; } } + public string Path { get { return m_path; } } + + string m_contentType; + string m_httpMethod; + string m_path; + UserLoginService m_loginService; + ProviderMemoryStore m_openidStore = new ProviderMemoryStore(); + + /// + /// Constructor + /// + public OpenIdStreamHandler(string httpMethod, string path, UserLoginService loginService) + { + m_loginService = loginService; + m_httpMethod = httpMethod; + m_path = path; + + m_contentType = "text/html"; + } + + /// + /// Handles all GET and POST requests for OpenID identifier pages and endpoint + /// server communication + /// + public void Handle(string path, Stream request, Stream response, OSHttpRequest httpRequest, OSHttpResponse httpResponse) + { + Uri providerEndpoint = new Uri(String.Format("{0}://{1}{2}", httpRequest.Url.Scheme, httpRequest.Url.Authority, httpRequest.Url.AbsolutePath)); + + // Defult to returning HTML content + m_contentType = "text/html"; + + try + { + NameValueCollection postQuery = HttpUtility.ParseQueryString(new StreamReader(httpRequest.InputStream).ReadToEnd()); + NameValueCollection getQuery = HttpUtility.ParseQueryString(httpRequest.Url.Query); + NameValueCollection openIdQuery = (postQuery.GetValues("openid.mode") != null ? postQuery : getQuery); + + OpenIdProvider provider = new OpenIdProvider(m_openidStore, providerEndpoint, httpRequest.Url, openIdQuery); + + if (provider.Request != null) + { + if (!provider.Request.IsResponseReady && provider.Request is IAuthenticationRequest) + { + IAuthenticationRequest authRequest = (IAuthenticationRequest)provider.Request; + string[] passwordValues = postQuery.GetValues("pass"); + + UserProfileData profile; + if (TryGetProfile(new Uri(authRequest.ClaimedIdentifier.ToString()), out profile)) + { + // Check for form POST data + if (passwordValues != null && passwordValues.Length == 1) + { + if (profile != null && m_loginService.AuthenticateUser(profile, passwordValues[0])) + authRequest.IsAuthenticated = true; + else + authRequest.IsAuthenticated = false; + } + else + { + // Authentication was requested, send the client a login form + using (StreamWriter writer = new StreamWriter(response)) + writer.Write(String.Format(LOGIN_PAGE, profile.FirstName, profile.SurName)); + return; + } + } + else + { + // Cannot find an avatar matching the claimed identifier + authRequest.IsAuthenticated = false; + } + } + + // Add OpenID headers to the response + foreach (string key in provider.Request.Response.Headers.Keys) + httpResponse.AddHeader(key, provider.Request.Response.Headers[key]); + + string[] contentTypeValues = provider.Request.Response.Headers.GetValues("Content-Type"); + if (contentTypeValues != null && contentTypeValues.Length == 1) + m_contentType = contentTypeValues[0]; + + // Set the response code and document body based on the OpenID result + httpResponse.StatusCode = (int)provider.Request.Response.Code; + response.Write(provider.Request.Response.Body, 0, provider.Request.Response.Body.Length); + response.Close(); + } + else if (httpRequest.Url.AbsolutePath.Contains("/openid/server")) + { + // Standard HTTP GET was made on the OpenID endpoint, send the client the default error page + using (StreamWriter writer = new StreamWriter(response)) + writer.Write(ENDPOINT_PAGE); + } + else + { + // Try and lookup this avatar + UserProfileData profile; + if (TryGetProfile(httpRequest.Url, out profile)) + { + using (StreamWriter writer = new StreamWriter(response)) + { + // TODO: Print out a full profile page for this avatar + writer.Write(String.Format(OPENID_PAGE, httpRequest.Url.Scheme, + httpRequest.Url.Authority, profile.FirstName, profile.SurName)); + } + } + else + { + // Couldn't parse an avatar name, or couldn't find the avatar in the user server + using (StreamWriter writer = new StreamWriter(response)) + writer.Write(INVALID_OPENID_PAGE); + } + } + } + catch (Exception ex) + { + httpResponse.StatusCode = (int)HttpStatusCode.InternalServerError; + using (StreamWriter writer = new StreamWriter(response)) + writer.Write(ex.Message); + } + } + + /// + /// Parse a URL with a relative path of the form /users/First_Last and try to + /// retrieve the profile matching that avatar name + /// + /// URL to parse for an avatar name + /// Profile data for the avatar + /// True if the parse and lookup were successful, otherwise false + bool TryGetProfile(Uri requestUrl, out UserProfileData profile) + { + if (requestUrl.Segments.Length == 3 && requestUrl.Segments[1] == "users/") + { + // Parse the avatar name from the path + string username = requestUrl.Segments[requestUrl.Segments.Length - 1]; + string[] name = username.Split('_'); + + if (name.Length == 2) + { + profile = m_loginService.GetTheUser(name[0], name[1]); + return (profile != null); + } + } + + profile = null; + return false; + } + } +} diff --git a/ThirdPartyLicenses/DotNetOpenid.txt b/ThirdPartyLicenses/DotNetOpenid.txt new file mode 100644 index 0000000000..1b6f678a93 --- /dev/null +++ b/ThirdPartyLicenses/DotNetOpenid.txt @@ -0,0 +1,10 @@ +Copyright (c) 2008, Andrew Arnott, Scott Hanselman, Jason Alexander, et. al +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of the DotNetOpenId nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/bin/DotNetOpenId.dll b/bin/DotNetOpenId.dll new file mode 100644 index 0000000000000000000000000000000000000000..aa62790a157a024b1ee433a4efe96ead7c51cc26 GIT binary patch literal 281088 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®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 G0{<7D&}yXs literal 0 HcmV?d00001 diff --git a/prebuild.xml b/prebuild.xml index 006a0630e6..91d3215655 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -845,6 +845,7 @@ + @@ -856,6 +857,7 @@ +