public async Task ShoudNotReset_TokenExpiration_WhenToken_IsExpired( long id, string username, string password, int minutes) { var testToken = new Token(id, username, password, TimeSpan.FromMinutes(minutes)); var initialValidTo = testToken.ValidTo; var spec = TokenSpecification.GetNotExpiredByValue(testToken.Value); _fixture.Data .Setup(x => x.Tokens.SingleOrDefaultAsync(It.IsAny <TokenSpecification>())) .Returns(Task.FromResult(testToken)); _fixture.Configuration .Setup(x => x.ValidDurationInMinutes) .Returns(minutes); var command = new ValidateTokenCommand { Value = testToken.Value }; var resultToken = await _fixture.Handler.Handle(command, CancellationToken.None); Assert.True(initialValidTo == resultToken.ValidTo); }
private static void PrintSpec(TokenSpecification specification, bool draft) { _log.Info("Print Controller printing Token Specification: " + specification.Artifact.Name); var trimName = specification.Artifact.Name.Replace(" ", "-"); _outputFolder = ModelMap.FilePath + ModelMap.SpecificationsFolder + ModelMap.FolderSeparator + trimName + ModelMap.FolderSeparator + ModelMap.Latest; _filePath = _outputFolder + ModelMap.FolderSeparator + trimName + "-spec.docx"; try { Directory.CreateDirectory(_outputFolder); InitWorkingDocument(ModelMap.StyleSource); } catch (Exception ex) { _log.Error("Artifact Output Folder: " + _outputFolder + " cannot be created."); _log.Error(ex); return; } SpecificationPrinter.PrintSpecification(_document, specification, true); Utils.InsertCustomWatermark(_document, draft ? ModelMap.DraftWaterMark : ModelMap.WaterMark); Utils.AddFooter(_document, specification.Artifact.Name + " - " + specification.SpecificationHash); Save(); }
public async Task ShoudNotThrow_Exception_WhenValidToken( long id, string username, string password, int minutes) { var testToken = new Token(id, username, password, TimeSpan.FromMinutes(minutes)); var spec = TokenSpecification.GetNotExpiredByValue(testToken.Value); _fixture.Data .Setup(x => x.Tokens.SingleOrDefaultAsync(It.IsAny <TokenSpecification>())) .Returns(Task.FromResult(testToken)); _fixture.Configuration .Setup(x => x.ValidDurationInMinutes) .Returns(minutes); var command = new ValidateTokenCommand { Value = testToken.Value }; var exception = await Record.ExceptionAsync( () => _fixture.Handler.Handle(command, CancellationToken.None)); Assert.True(exception == null); }
public static void OutputSpecification(TokenSpecification tokenSpec) { Log.Error("---------------------------------------------------"); Log.Error("Token Specification:"); Log.Error("---------------------------------------------------"); var tDef = tokenSpec.ToString(); var fDef = JToken.Parse(tDef).ToString(); Log.Info(fDef); }
public static Classification GetClassification(TokenSpecification spec) { var template = ModelManager.GetTokenTemplate(new TokenTemplateId { DefinitionId = spec.DefinitionReference.Id }); return(new Classification { RepresentationType = spec.TokenBase.RepresentationType, TemplateType = template.Formula.TemplateType, ValueType = spec.TokenBase.ValueType, TokenType = spec.TokenBase.TokenType, TokenUnit = spec.TokenBase.TokenUnit, Supply = spec.TokenBase.Supply }); }
public TokenAuthenticationService(TokenSigningCredentials signingCredentials, TokenSpecification verificationSpecification, ApplicationDbContext dbContext, ILogger logger, JwtSecurityTokenHandler tokenHandler = null) { _signingCredentials = signingCredentials ?? throw new ArgumentNullException(nameof(signingCredentials)); _verificationSpecification = verificationSpecification ?? throw new ArgumentNullException(nameof(verificationSpecification)); _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); _logger = logger; _tokenHandler = tokenHandler ?? new JwtSecurityTokenHandler(); }
public async Task <Token> Handle(ValidateTokenCommand request, CancellationToken cancellationToken) { var spec = TokenSpecification.GetNotExpiredByValue(request.Value); var token = await _data.Tokens.SingleOrDefaultAsync(spec); if (token == null) { throw new AuthenticationApplicationException(); } var now = DateTime.UtcNow; if (now < token.ValidTo && _configuration.ValidDurationInMinutes.Value > 0) { token.ResetExpiration(_configuration.ValidDuration); } return(token); }
public Validation(VolunteerSpecifications volunteerSpecifications, OrganisationSpecifications organisationSpecifications, TokenSpecification tokenSpecification) { _volunteerSpecifications = volunteerSpecifications; _organisationSpecifications = organisationSpecifications; _tokenSpecification = tokenSpecification; }
public static void PrintSpecification(WordprocessingDocument document, TokenSpecification spec, bool isForAppendix = false) { var classification = ModelMap.GetClassification(spec); ArtifactPrinter.AddArtifactSpecification(document, spec.Artifact, classification, true); _log.Info("Printing Token Specification Properties: " + spec.Artifact.Name); var body = document.MainDocumentPart.Document.Body; var beDef = body.AppendChild(new Paragraph()); var beRun = beDef.AppendChild(new Run()); beRun.AppendChild(new Text(spec.Artifact.Name + " is:")); Utils.ApplyStyleToParagraph(document, "Heading1", "Heading1", beDef); var behaviorList = spec.Behaviors.Select(b => b.Artifact.Name).ToList(); Utils.AddBulletList(document, behaviorList); if (spec.PropertySets.Count > 0) { var bgDef = body.AppendChild(new Paragraph()); var bgRun = bgDef.AppendChild(new Run()); bgRun.AppendChild(new Text("It includes the following Property Sets:")); Utils.ApplyStyleToParagraph(document, "Heading3", "Heading3", bgDef, JustificationValues.Center); var propSetList = spec.PropertySets.Select(b => b.Artifact.Name).ToList(); Utils.AddBulletList(document, propSetList); } if (spec.ChildTokens.Count > 0) { var cDef = body.AppendChild(new Paragraph()); var cRun = cDef.AppendChild(new Run()); cRun.AppendChild(new Text("As a Hybrid " + spec.Artifact.Name + " has the following Child Tokens:")); Utils.ApplyStyleToParagraph(document, "Heading3", "Heading3", cDef, JustificationValues.Center); foreach (var c in spec.ChildTokens) { ArtifactPrinter.AddChildArtifactSpecification(document, c); var bbDef = body.AppendChild(new Paragraph()); var bbRun = bbDef.AppendChild(new Run()); bbRun.AppendChild(new Text("")); Utils.ApplyStyleToParagraph(document, "Normal", "Normal", bbDef, JustificationValues.Center); } } var detailsDef = body.AppendChild(new Paragraph()); var detailsRun = detailsDef.AppendChild(new Run()); detailsRun.AppendChild(new Text(spec.Artifact.Name + " Details")); Utils.ApplyStyleToParagraph(document, "Heading1", "Heading1", detailsDef, JustificationValues.Center); BasePrinter.AddBaseSpecification(document, spec.TokenBase); var dDef = body.AppendChild(new Paragraph()); var dRun = dDef.AppendChild(new Run()); dRun.AppendChild(new Text("Behaviors")); Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", dDef); foreach (var b in spec.Behaviors) { BehaviorPrinter.AddBehaviorSpecification(document, b); } foreach (var bg in spec.BehaviorGroups) { BehaviorGroupPrinter.AddBehaviorGroupSpecification(document, bg); } foreach (var ps in spec.PropertySets) { PropertySetPrinter.AddPropertySetSpecification(document, ps); } foreach (var c in spec.ChildTokens) { PrintSpecification(document, c, false); var bbDef = body.AppendChild(new Paragraph()); var bbRun = bbDef.AppendChild(new Run()); bbRun.AppendChild(new Text("")); Utils.ApplyStyleToParagraph(document, "Normal", "Normal", bbDef, JustificationValues.Center); } if (isForAppendix) { return; } var pageBreak = body.AppendChild(new Paragraph()); var pbr = pageBreak.AppendChild(new Run()); pbr.AppendChild(new Text("")); if (pageBreak.ParagraphProperties == null) { pageBreak.ParagraphProperties = new ParagraphProperties(); } pageBreak.ParagraphProperties.PageBreakBefore = new PageBreakBefore(); Utils.ApplyStyleToParagraph(document, "Normal", "Normal", pageBreak); }