Skip to content

Commit b414695

Browse files
committed
Explicit declaring variables.
Adding exchange token validation.
1 parent 5124c4c commit b414695

File tree

8 files changed

+391
-42
lines changed

8 files changed

+391
-42
lines changed

eFormAPI/eFormAPI/Controllers/EntitySearchController.cs

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ public OperationDataResult<EntityGroupList> GetEntityGroupList(
2424
{
2525
try
2626
{
27-
var core = _coreHelper.GetCore();
28-
var model = core.Advanced_EntityGroupAll(requestModel.Sort, requestModel.NameFilter,
27+
eFormCore.Core core = _coreHelper.GetCore();
28+
EntityGroupList model = core.Advanced_EntityGroupAll(requestModel.Sort, requestModel.NameFilter,
2929
requestModel.PageIndex, requestModel.PageSize, Constants.FieldTypes.EntitySearch,
3030
requestModel.IsSortDsc,
3131
Constants.WorkflowStates.NotRemoved);
@@ -44,13 +44,13 @@ public OperationResult CreateEntityGroup(AdvEntitySearchableGroupEditModel editM
4444
{
4545
try
4646
{
47-
var core = _coreHelper.GetCore();
48-
var groupCreate = core.EntityGroupCreate(Constants.FieldTypes.EntitySearch, editModel.Name);
47+
eFormCore.Core core = _coreHelper.GetCore();
48+
EntityGroup groupCreate = core.EntityGroupCreate(Constants.FieldTypes.EntitySearch, editModel.Name);
4949
if (editModel.AdvEntitySearchableItemModels.Any())
5050
{
51-
var entityGroup = core.EntityGroupRead(groupCreate.MicrotingUUID);
52-
var nextItemUid = entityGroup.EntityGroupItemLst.Count;
53-
foreach (var entityItem in editModel.AdvEntitySearchableItemModels)
51+
EntityGroup entityGroup = core.EntityGroupRead(groupCreate.MicrotingUUID);
52+
int nextItemUid = entityGroup.EntityGroupItemLst.Count;
53+
foreach (EntityItem entityItem in editModel.AdvEntitySearchableItemModels)
5454
{
5555
core.EntitySearchItemCreate(entityGroup.Id, entityItem.Name, entityItem.Description,
5656
nextItemUid.ToString());
@@ -78,10 +78,10 @@ public OperationResult UpdateEntityGroup(AdvEntitySearchableGroupEditModel editM
7878
{
7979
try
8080
{
81-
var core = _coreHelper.GetCore();
82-
var entityGroup = core.EntityGroupRead(editModel.GroupUid);
81+
eFormCore.Core core = _coreHelper.GetCore();
82+
EntityGroup entityGroup = core.EntityGroupRead(editModel.GroupUid);
8383

84-
var nextItemUid = entityGroup.EntityGroupItemLst.Count;
84+
int nextItemUid = entityGroup.EntityGroupItemLst.Count;
8585
List<int> currentIds = new List<int>();
8686

8787
foreach (var entityItem in editModel.AdvEntitySearchableItemModels)
@@ -125,9 +125,9 @@ public OperationDataResult<EntityGroup> GetEntityGroup(string entityGroupUid)
125125
{
126126
try
127127
{
128-
var core = _coreHelper.GetCore();
128+
eFormCore.Core core = _coreHelper.GetCore();
129129

130-
var entityGroup = core.EntityGroupRead(entityGroupUid);
130+
EntityGroup entityGroup = core.EntityGroupRead(entityGroupUid);
131131

132132
return new OperationDataResult<EntityGroup>(true, entityGroup);
133133
}
@@ -145,13 +145,13 @@ public OperationDataResult<List<CommonDictionaryTextModel>> GetEntityGroupDictio
145145
{
146146
try
147147
{
148-
var core = _coreHelper.GetCore();
148+
eFormCore.Core core = _coreHelper.GetCore();
149149

150-
var entityGroup = core.EntityGroupRead(entityGroupUid, null, searchString);
150+
EntityGroup entityGroup = core.EntityGroupRead(entityGroupUid, null, searchString);
151151

152-
var mappedEntityGroupDict = new List<CommonDictionaryTextModel>();
152+
List<CommonDictionaryTextModel> mappedEntityGroupDict = new List<CommonDictionaryTextModel>();
153153

154-
foreach (var entityGroupItem in entityGroup.EntityGroupItemLst)
154+
foreach (EntityItem entityGroupItem in entityGroup.EntityGroupItemLst)
155155
{
156156
mappedEntityGroupDict.Add(new CommonDictionaryTextModel()
157157
{
@@ -175,8 +175,7 @@ public OperationResult DeleteEntityGroup(string entityGroupUid)
175175
{
176176
try
177177
{
178-
var core = _coreHelper.GetCore();
179-
178+
eFormCore.Core core = _coreHelper.GetCore();
180179

181180
return core.EntityGroupDelete(entityGroupUid)
182181
? new OperationResult(true, LocaleHelper.GetString("ParamDeletedSuccessfully", entityGroupUid))
@@ -195,8 +194,7 @@ public OperationResult SendSearchableGroup(string entityGroupUid)
195194
{
196195
try
197196
{
198-
var core = _coreHelper.GetCore();
199-
197+
eFormCore.Core core = _coreHelper.GetCore();
200198

201199
return new OperationResult(true, LocaleHelper.GetString("ParamDeletedSuccessfully", entityGroupUid));
202200
}

eFormAPI/eFormAPI/Controllers/EntitySelectController.cs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using eFormApi.BasePn.Infrastructure;
1010
using eFormApi.BasePn.Infrastructure.Helpers;
1111
using eFormApi.BasePn.Infrastructure.Models.API;
12+
using eFormAPI.Web.Infrastructure.Helpers.ExchangeTokenValidation;
1213

1314
namespace eFormAPI.Web.Controllers
1415
{
@@ -24,8 +25,8 @@ public OperationDataResult<EntityGroupList> GetEntityGroupList(
2425
{
2526
try
2627
{
27-
var core = _coreHelper.GetCore();
28-
var model = core.Advanced_EntityGroupAll(requestModel.Sort, requestModel.NameFilter,
28+
eFormCore.Core core = _coreHelper.GetCore();
29+
EntityGroupList model = core.Advanced_EntityGroupAll(requestModel.Sort, requestModel.NameFilter,
2930
requestModel.PageIndex, requestModel.PageSize, Constants.FieldTypes.EntitySelect,
3031
requestModel.IsSortDsc,
3132
Constants.WorkflowStates.NotRemoved);
@@ -43,8 +44,8 @@ public OperationResult CreateEntityGroup(AdvEntitySelectableGroupEditModel editM
4344
{
4445
try
4546
{
46-
var core = _coreHelper.GetCore();
47-
var groupCreate = core.EntityGroupCreate(Constants.FieldTypes.EntitySelect, editModel.Name);
47+
eFormCore.Core core = _coreHelper.GetCore();
48+
EntityGroup groupCreate = core.EntityGroupCreate(Constants.FieldTypes.EntitySelect, editModel.Name);
4849
if (editModel.AdvEntitySelectableItemModels.Any())
4950
{
5051
var entityGroup = core.EntityGroupRead(groupCreate.MicrotingUUID);
@@ -72,8 +73,8 @@ public OperationResult UpdateEntityGroup(AdvEntitySelectableGroupEditModel editM
7273
{
7374
try
7475
{
75-
var core = _coreHelper.GetCore();
76-
var entityGroup = core.EntityGroupRead(editModel.GroupUid);
76+
eFormCore.Core core = _coreHelper.GetCore();
77+
EntityGroup entityGroup = core.EntityGroupRead(editModel.GroupUid);
7778

7879
if (editModel.AdvEntitySelectableItemModels.Any())
7980
{
@@ -115,9 +116,9 @@ public OperationDataResult<EntityGroup> GetEntityGroup(string entityGroupUid)
115116
{
116117
try
117118
{
118-
var core = _coreHelper.GetCore();
119+
eFormCore.Core core = _coreHelper.GetCore();
119120

120-
var entityGroup = core.EntityGroupRead(entityGroupUid);
121+
EntityGroup entityGroup = core.EntityGroupRead(entityGroupUid);
121122

122123
return new OperationDataResult<EntityGroup>(true, entityGroup);
123124
}
@@ -129,18 +130,20 @@ public OperationDataResult<EntityGroup> GetEntityGroup(string entityGroupUid)
129130

130131
[HttpGet]
131132
[AllowAnonymous]
132-
[Route("api/selectable-groups/get/{entityGroupUid}/token={token}")]
133-
public OperationDataResult<EntityGroup> GetEntityGroupExternally(string entityGroupUid, string token)
133+
[Route("api/selectable-groups/get/{entityGroupUid}/exchange")]
134+
public OperationDataResult<EntityGroup> GetEntityGroupExternally(string entityGroupUid, string token, string callerURL)
134135
{
135136
// Do some validation of the token. For now token is not valid
136-
bool tokenIsValid = false;
137-
if (tokenIsValid)
137+
//bool tokenIsValid = false;
138+
ExchangeIdToken idToken = new ExchangeIdToken(token);
139+
IdTokenValidationResult result = idToken.Validate(callerURL);
140+
if (result.IsValid)
138141
{
139142
try
140143
{
141-
var core = _coreHelper.GetCore();
144+
eFormCore.Core core = _coreHelper.GetCore();
142145

143-
var entityGroup = core.EntityGroupRead(entityGroupUid);
146+
EntityGroup entityGroup = core.EntityGroupRead(entityGroupUid);
144147

145148
return new OperationDataResult<EntityGroup>(true, entityGroup);
146149
}
@@ -162,13 +165,13 @@ public OperationDataResult<List<CommonDictionaryTextModel>> GetEntityGroupDictio
162165
{
163166
try
164167
{
165-
var core = _coreHelper.GetCore();
168+
eFormCore.Core core = _coreHelper.GetCore();
166169

167-
var entityGroup = core.EntityGroupRead(entityGroupUid);
170+
EntityGroup entityGroup = core.EntityGroupRead(entityGroupUid);
168171

169-
var mappedEntityGroupDict = new List<CommonDictionaryTextModel>();
172+
List<CommonDictionaryTextModel> mappedEntityGroupDict = new List<CommonDictionaryTextModel>();
170173

171-
foreach (var entityGroupItem in entityGroup.EntityGroupItemLst)
174+
foreach (EntityItem entityGroupItem in entityGroup.EntityGroupItemLst)
172175
{
173176
mappedEntityGroupDict.Add(new CommonDictionaryTextModel()
174177
{
@@ -192,8 +195,7 @@ public OperationResult DeleteEntityGroup(string entityGroupUid)
192195
{
193196
try
194197
{
195-
var core = _coreHelper.GetCore();
196-
198+
eFormCore.Core core = _coreHelper.GetCore();
197199

198200
return core.EntityGroupDelete(entityGroupUid)
199201
? new OperationResult(true, LocaleHelper.GetString("ParamDeletedSuccessfully", entityGroupUid))
@@ -212,8 +214,7 @@ public OperationResult SendSearchableGroup(string entityGroupUid)
212214
{
213215
try
214216
{
215-
var core = _coreHelper.GetCore();
216-
217+
eFormCore.Core core = _coreHelper.GetCore();
217218

218219
return new OperationResult(true, LocaleHelper.GetString("ParamDeletedSuccessfully", entityGroupUid));
219220
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Newtonsoft.Json;
2+
3+
namespace eFormAPI.Web.Infrastructure.Helpers.ExchangeTokenValidation
4+
{
5+
/// <summary>
6+
/// Representation of the appctx claim in an Exchange user identity token.
7+
/// </summary>
8+
public class ExchangeAppContext
9+
{
10+
/// <summary>
11+
/// The Exchange identifier for the user
12+
/// </summary>
13+
[JsonProperty("msexchuid")]
14+
public string ExchangeUid { get; set; }
15+
16+
/// <summary>
17+
/// The token version
18+
/// </summary>
19+
public string Version { get; set; }
20+
21+
/// <summary>
22+
/// The URL to download authentication metadata
23+
/// </summary>
24+
[JsonProperty("amurl")]
25+
public string MetadataUrl { get; set; }
26+
}
27+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
namespace eFormAPI.Web.Infrastructure.Helpers.ExchangeTokenValidation
2+
{
3+
/// <summary>
4+
/// Represents the Exchange authentication metadata retrieved from the server
5+
/// </summary>
6+
public class ExchangeAuthMetadata
7+
{
8+
/// <summary>
9+
/// The ID of the metadata
10+
/// </summary>
11+
public string Id { get; set; }
12+
13+
/// <summary>
14+
/// Metadata version
15+
/// </summary>
16+
public string Version { get; set; }
17+
18+
/// <summary>
19+
/// Metadata name
20+
/// </summary>
21+
public string Name { get; set; }
22+
23+
/// <summary>
24+
/// Metadata realm
25+
/// </summary>
26+
public string Realm { get; set; }
27+
28+
/// <summary>
29+
/// Metadata service name
30+
/// </summary>
31+
public string ServiceName { get; set; }
32+
33+
/// <summary>
34+
/// Metadata issuer
35+
/// </summary>
36+
public string Issuer { get; set; }
37+
38+
/// <summary>
39+
/// Metadata allowed audiences
40+
/// </summary>
41+
public string[] AllowedAudiences { get; set; }
42+
43+
/// <summary>
44+
/// Available signing keys
45+
/// </summary>
46+
public ExchangeKey[] Keys { get; set; }
47+
48+
}
49+
}

0 commit comments

Comments
 (0)